<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/arch/powerpc/sysdev, branch v3.6.4</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/arch/powerpc/sysdev?h=v3.6.4</id>
<link rel='self' href='https://git.amat.us/linux/atom/arch/powerpc/sysdev?h=v3.6.4'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-10-12T20:50:17Z</updated>
<entry>
<title>powerpc/iommu: Fix multiple issues with IOMMU pools code</title>
<updated>2012-10-12T20:50:17Z</updated>
<author>
<name>Anton Blanchard</name>
<email>anton@samba.org</email>
</author>
<published>2012-10-03T18:57:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=11464f790b08f7a8b0e5a98b994f53bd33ecb9e4'/>
<id>urn:sha1:11464f790b08f7a8b0e5a98b994f53bd33ecb9e4</id>
<content type='text'>
commit d900bd7366463fd96a907b2c212242e2b68b27d8 upstream.

There are a number of issues in the recent IOMMU pools code:

- On a preempt kernel we might switch CPUs in the middle of building
  a scatter gather list. When this happens the handle hint passed in
  no longer falls within the local CPU's pool. Check for this and
  fall back to the pool hint.

- We were missing a spin_unlock/spin_lock in one spot where we
  switch pools.

- We need to provide locking around dart_tlb_invalidate_all and
  dart_tlb_invalidate_one now that the global lock is gone.

Reported-by: Alexander Graf &lt;agraf@suse.de&gt;
Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>powerpc: Make sure IPI handlers see data written by IPI senders</title>
<updated>2012-09-05T06:05:22Z</updated>
<author>
<name>Paul Mackerras</name>
<email>paulus@samba.org</email>
</author>
<published>2012-09-04T18:33:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9fb1b36ca1234e64a5d1cc573175303395e3354d'/>
<id>urn:sha1:9fb1b36ca1234e64a5d1cc573175303395e3354d</id>
<content type='text'>
We have been observing hangs, both of KVM guest vcpu tasks and more
generally, where a process that is woken doesn't properly wake up and
continue to run, but instead sticks in TASK_WAKING state.  This
happens because the update of rq-&gt;wake_list in ttwu_queue_remote()
is not ordered with the update of ipi_message in
smp_muxed_ipi_message_pass(), and the reading of rq-&gt;wake_list in
scheduler_ipi() is not ordered with the reading of ipi_message in
smp_ipi_demux().  Thus it is possible for the IPI receiver not to see
the updated rq-&gt;wake_list and therefore conclude that there is nothing
for it to do.

In order to make sure that anything done before smp_send_reschedule()
is ordered before anything done in the resulting call to scheduler_ipi(),
this adds barriers in smp_muxed_message_pass() and smp_ipi_demux().
The barrier in smp_muxed_message_pass() is a full barrier to ensure that
there is a full ordering between the smp_send_reschedule() caller and
scheduler_ipi().  In smp_ipi_demux(), we use xchg() rather than
xchg_local() because xchg() includes release and acquire barriers.
Using xchg() rather than xchg_local() makes sense given that
ipi_message is not just accessed locally.

This moves the barrier between setting the message and calling the
cause_ipi() function into the individual cause_ipi implementations.
Most of them -- those that used outb, out_8 or similar -- already had
a full barrier because out_8 etc. include a sync before the MMIO
store.  This adds an explicit barrier in the two remaining cases.

These changes made no measurable difference to the speed of IPIs as
measured using a simple ping-pong latency test across two CPUs on
different cores of a POWER7 machine.

The analysis of the reason why processes were not waking up properly
is due to Milton Miller.

Cc: stable@vger.kernel.org # v3.0+
Reported-by: Milton Miller &lt;miltonm@bga.com&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/mpic_msgr: Add missing includes</title>
<updated>2012-08-24T10:26:04Z</updated>
<author>
<name>Scott Wood</name>
<email>scottwood@freescale.com</email>
</author>
<published>2012-08-22T15:35:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=46c5c59e6902855b61a31be1b8e26bfffcae1e07'/>
<id>urn:sha1:46c5c59e6902855b61a31be1b8e26bfffcae1e07</id>
<content type='text'>
Add several #includes that mpic_msgr relies on being pulled implicitly,
which only happens on certain configs.

Signed-off-by: Scott Wood &lt;scottwood@freescale.com&gt;
Cc: Meador Inge &lt;meador_inge@mentor.com&gt;
Cc: Jia Hongtao &lt;B38951@freescale.com&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/fsl-pci: Only scan PCI bus if configured as a host</title>
<updated>2012-08-03T13:25:52Z</updated>
<author>
<name>Jia Hongtao</name>
<email>B38951@freescale.com</email>
</author>
<published>2012-08-03T10:14:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c9f11c30374329a0d2a88cf05281ca49d8eca9ab'/>
<id>urn:sha1:c9f11c30374329a0d2a88cf05281ca49d8eca9ab</id>
<content type='text'>
We change fsl_add_bridge to return -ENODEV if the controller is working in
agent mode. Then check the return value of fsl_add_bridge to guarantee
that only successfully added host bus will be scanned.

Signed-off-by: Jia Hongtao &lt;B38951@freescale.com&gt;
Signed-off-by: Li Yang &lt;leoli@freescale.com&gt;
Signed-off-by: Kumar Gala &lt;galak@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>Merge tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux-2.6</title>
<updated>2012-08-01T03:44:03Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2012-08-01T03:44:03Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2d534926205db9ffce4bbbde67cb9b2cee4b835c'/>
<id>urn:sha1:2d534926205db9ffce4bbbde67cb9b2cee4b835c</id>
<content type='text'>
Pull irqdomain changes from Grant Likely:
 "Round of refactoring and enhancements to irq_domain infrastructure.
  This series starts the process of simplifying irqdomain.  The ultimate
  goal is to merge LEGACY, LINEAR and TREE mappings into a single
  system, but had to back off from that after some last minute bugs.
  Instead it mainly reorganizes the code and ensures that the reverse
  map gets populated when the irq is mapped instead of the first time it
  is looked up.

  Merging of the irq_domain types is deferred to v3.7

  In other news, this series adds helpers for creating static mappings
  on a linear or tree mapping."

* tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux-2.6:
  irqdomain: Improve diagnostics when a domain mapping fails
  irqdomain: eliminate slow-path revmap lookups
  irqdomain: Fix irq_create_direct_mapping() to test irq_domain type.
  irqdomain: Eliminate dedicated radix lookup functions
  irqdomain: Support for static IRQ mapping and association.
  irqdomain: Always update revmap when setting up a virq
  irqdomain: Split disassociating code into separate function
  irq_domain: correct a minor wrong comment for linear revmap
  irq_domain: Standardise legacy/linear domain selection
  irqdomain: Make ops-&gt;map hook optional
  irqdomain: Remove unnecessary test for IRQ_DOMAIN_MAP_LEGACY
  irqdomain: Simple NUMA awareness.
  devicetree: add helper inline for retrieving a node's full name
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'kumar/merge' into merge</title>
<updated>2012-07-31T05:18:31Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
<email>benh@kernel.crashing.org</email>
</author>
<published>2012-07-31T05:18:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b6965f7967a64b185d7ff4cc4bcf15c380c1348f'/>
<id>urn:sha1:b6965f7967a64b185d7ff4cc4bcf15c380c1348f</id>
<content type='text'>
Kumar says:

"A few patches that missed the initial 3.6 window.  These are bug fixes at
this point."
</content>
</entry>
<entry>
<title>powerpc/85xx: Fix sram_offset parameter type</title>
<updated>2012-07-26T18:24:32Z</updated>
<author>
<name>Claudiu Manoil</name>
<email>claudiu.manoil@freescale.com</email>
</author>
<published>2012-07-26T14:47:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=163f22dc9615e6bc446f50a626af7362cd269876'/>
<id>urn:sha1:163f22dc9615e6bc446f50a626af7362cd269876</id>
<content type='text'>
The sram_offset parameter represents a physical address and should be of
type phys_addr_t. As part of this fix, the extraction of sram_params is
being cleaned-up and fixed.

This patch fixes now the case when the offset value of 0xfff00000 was being
rejected by the driver (returning -EINVAL), although this is a valid offset
value.

Signed-off-by: Tang Yuantian &lt;Yuantian.Tang@freescale.com&gt;
Signed-off-by: Claudiu Manoil &lt;claudiu.manoil@freescale.com&gt;
Signed-off-by: Kumar Gala &lt;galak@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'origin' into irqdomain/next</title>
<updated>2012-07-25T04:34:40Z</updated>
<author>
<name>Grant Likely</name>
<email>grant.likely@secretlab.ca</email>
</author>
<published>2012-07-25T04:31:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6aeea3ecc33b1f36dbc3b80461d15a7052ae424f'/>
<id>urn:sha1:6aeea3ecc33b1f36dbc3b80461d15a7052ae424f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge tag 'for-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci</title>
<updated>2012-07-24T23:17:07Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2012-07-24T23:17:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6dd53aa4563a2c69e80a24d2cc68d484b5ea2891'/>
<id>urn:sha1:6dd53aa4563a2c69e80a24d2cc68d484b5ea2891</id>
<content type='text'>
Pull PCI changes from Bjorn Helgaas:
 "Host bridge hotplug:
    - Add MMCONFIG support for hot-added host bridges (Jiang Liu)
  Device hotplug:
    - Move fixups from __init to __devinit (Sebastian Andrzej Siewior)
    - Call FINAL fixups for hot-added devices, too (Myron Stowe)
    - Factor out generic code for P2P bridge hot-add (Yinghai Lu)
    - Remove all functions in a slot, not just those with _EJx (Amos
      Kong)
  Dynamic resource management:
    - Track bus number allocation (struct resource tree per domain)
      (Yinghai Lu)
    - Make P2P bridge 1K I/O windows work with resource reassignment
      (Bjorn Helgaas, Yinghai Lu)
    - Disable decoding while updating 64-bit BARs (Bjorn Helgaas)
  Power management:
    - Add PCIe runtime D3cold support (Huang Ying)
  Virtualization:
    - Add VFIO infrastructure (ACS, DMA source ID quirks) (Alex
      Williamson)
    - Add quirks for devices with broken INTx masking (Jan Kiszka)
  Miscellaneous:
    - Fix some PCI Express capability version issues (Myron Stowe)
    - Factor out some arch code with a weak, generic, pcibios_setup()
      (Myron Stowe)"

* tag 'for-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (122 commits)
  PCI: hotplug: ensure a consistent return value in error case
  PCI: fix undefined reference to 'pci_fixup_final_inited'
  PCI: build resource code for M68K architecture
  PCI: pciehp: remove unused pciehp_get_max_lnk_width(), pciehp_get_cur_lnk_width()
  PCI: reorder __pci_assign_resource() (no change)
  PCI: fix truncation of resource size to 32 bits
  PCI: acpiphp: merge acpiphp_debug and debug
  PCI: acpiphp: remove unused res_lock
  sparc/PCI: replace pci_cfg_fake_ranges() with pci_read_bridge_bases()
  PCI: call final fixups hot-added devices
  PCI: move final fixups from __init to __devinit
  x86/PCI: move final fixups from __init to __devinit
  MIPS/PCI: move final fixups from __init to __devinit
  PCI: support sizing P2P bridge I/O windows with 1K granularity
  PCI: reimplement P2P bridge 1K I/O windows (Intel P64H2)
  PCI: disable MEM decoding while updating 64-bit MEM BARs
  PCI: leave MEM and IO decoding disabled during 64-bit BAR sizing, too
  PCI: never discard enable/suspend/resume_early/resume fixups
  PCI: release temporary reference in __nv_msi_ht_cap_quirk()
  PCI: restructure 'pci_do_fixups()'
  ...
</content>
</entry>
<entry>
<title>powerpc/mpic: Create a revmap with enough entries for IPIs and timers</title>
<updated>2012-07-23T04:20:42Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
<email>benh@kernel.crashing.org</email>
</author>
<published>2012-07-22T16:45:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=574ce79cea9d3fda109ffcc82f81733de4740e5c'/>
<id>urn:sha1:574ce79cea9d3fda109ffcc82f81733de4740e5c</id>
<content type='text'>
The current mpic code creates a linear revmap just big enough for all
the sources, which happens to miss the IPIs and timers on some machines.

This will in turn break when the irqdomain code loses the fallback of
doing a linear search when the revmap fails (and really slows down IPIs
otherwise).

This happens for example on the U4 based Apple machines such as the
dual core PowerMac G5s.

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
</feed>
