<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/powerpc/platforms/cell, branch linux-2.6.28.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.28.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.28.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2008-12-16T02:48:18Z</updated>
<entry>
<title>powerpc/cell/axon-msi: Fix MSI after kexec</title>
<updated>2008-12-16T02:48:18Z</updated>
<author>
<name>Arnd Bergmann</name>
</author>
<published>2008-12-12T09:19:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=23e0e8afafd9ac065d81506524adf3339584044b'/>
<id>urn:sha1:23e0e8afafd9ac065d81506524adf3339584044b</id>
<content type='text'>
Commit d015fe995 'powerpc/cell/axon-msi: Retry on missing interrupt'
has turned a rare failure to kexec on QS22 into a reproducible
error, which we have now analysed.

The problem is that after a kexec, the MSIC hardware still points
into the middle of the old ring buffer.  We set up the ring buffer
during reboot, but not the offset into it.  On older kernels, this
would cause a storm of thousands of spurious interrupts after a
kexec, which would most of the time get dropped silently.

With the new code, we time out on each interrupt, waiting for
it to become valid.  If more interrupts come in that we time
out on, this goes on indefinitely, which eventually leads to
a hard crash.

The solution in this commit is to read the current offset from
the MSIC when reinitializing it.  This now works correctly, as
expected.

Reported-by: Dirk Herrendoerfer &lt;d.herrendoerfer@de.ibm.com&gt;
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Acked-by: Michael Ellerman &lt;michael@ellerman.id.au&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
<entry>
<title>powerpc/cell: Fix GDB watchpoints, again</title>
<updated>2008-11-30T22:40:18Z</updated>
<author>
<name>Arnd Bergmann</name>
</author>
<published>2008-11-28T09:51:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=960cedb4e3eedec6394f224fc832c7a23f35a799'/>
<id>urn:sha1:960cedb4e3eedec6394f224fc832c7a23f35a799</id>
<content type='text'>
An earlier patch from Jens Osterkamp attempted to fix GDB
watchpoints by enabling the DABRX register at boot time.
Unfortunately, this did not work on SMP setups, where
secondary CPUs were still using the power-on DABRX value.

This introduces the same change for secondary CPUs on cell
as well.

Reported-by: Ulrich Weigand &lt;Ulrich.Weigand@de.ibm.com&gt;
Tested-by: Ulrich Weigand &lt;Ulrich.Weigand@de.ibm.com&gt;
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
<entry>
<title>powerpc/cell/axon-msi: Retry on missing interrupt</title>
<updated>2008-11-30T22:40:18Z</updated>
<author>
<name>Arnd Bergmann</name>
</author>
<published>2008-11-28T09:51:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d015fe9951641b2d869a7ae4a690be2a05a9dc7f'/>
<id>urn:sha1:d015fe9951641b2d869a7ae4a690be2a05a9dc7f</id>
<content type='text'>
The MSI capture logic for the axon bridge can sometimes
lose interrupts in case of high DMA and interrupt load,
when it signals an MSI interrupt to the MPIC interrupt
controller while we are already handling another MSI.

Each MSI vector gets written into a FIFO buffer in main
memory using DMA, and that DMA access is normally flushed
by the actual interrupt packet on the IOIF.  An MMIO
register in the MSIC holds the position of the last
entry in the FIFO buffer that was written.  However,
reading that position does not flush the DMA, so that
we can observe stale data in the buffer.

In a stress test, we have observed the DMA to arrive
up to 14 microseconds after reading the register.

This patch works around this problem by retrying the
access to the FIFO buffer.

We can reliably detect the conditioning by writing
an invalid MSI vector into the FIFO buffer after
reading from it, assuming that all MSIs we get
are valid.  After detecting an invalid MSI vector,
we udelay(1) in the interrupt cascade for up to
100 times before giving up.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/jk/spufs into merge</title>
<updated>2008-11-24T00:54:08Z</updated>
<author>
<name>Paul Mackerras</name>
</author>
<published>2008-11-24T00:54:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3f9b5d4dda6d85aab33fef32e8351ddc34c81fb4'/>
<id>urn:sha1:3f9b5d4dda6d85aab33fef32e8351ddc34c81fb4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>powerpc/spufs: Fix spinning in spufs_ps_fault on signal</title>
<updated>2008-11-20T23:14:16Z</updated>
<author>
<name>Jeremy Kerr</name>
</author>
<published>2008-11-10T23:22:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=606572634c3faa5b32a8fc430266e6e9d78d2179'/>
<id>urn:sha1:606572634c3faa5b32a8fc430266e6e9d78d2179</id>
<content type='text'>
Currently, we can end up in an infinite loop if we get a signal
while the kernel has faulted in spufs_ps_fault. Eg:

 alarm(1);

 write(fd, some_spu_psmap_register_address, 4);

- the write's copy_from_user will fault on the ps mapping, and
signal_pending will be non-zero. Because returning from the fault
handler will never clear TIF_SIGPENDING, so we'll just keep faulting,
resulting in an unkillable process using 100% of CPU.

This change returns VM_FAULT_SIGBUS if there's a fatal signal pending,
letting us escape the loop.

Signed-off-by: Jeremy Kerr &lt;jk@ozlabs.org&gt;
</content>
</entry>
<entry>
<title>powerpc/cell: Fix compile error in ras.c</title>
<updated>2008-11-05T08:59:08Z</updated>
<author>
<name>Alexey Dobriyan</name>
</author>
<published>2008-11-02T10:21:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9c8b4aff18b59cd0c2d9a77b3df1f9d7077df90c'/>
<id>urn:sha1:9c8b4aff18b59cd0c2d9a77b3df1f9d7077df90c</id>
<content type='text'>
This fixes this error on Cell when CONFIG_KEXEC = n:

arch/powerpc/platforms/cell/ras.c:299: error: implicit declaration of function 'crash_shutdown_register'

We have to include &lt;asm/kexec.h&gt; because it contains the dummy
definition of crash_shutdown_register that is used when
CONFIG_KEXEC=n, but &lt;linux/kexec.h&gt; doesn't include &lt;asm/kexec.h&gt; in
that case.

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
<entry>
<title>powerpc: Update remaining dma_mapping_ops to use map/unmap_page</title>
<updated>2008-10-31T05:13:48Z</updated>
<author>
<name>Mark Nelson</name>
</author>
<published>2008-10-27T20:38:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f9226d572d2f8b5f564596db8c6a13e458c46191'/>
<id>urn:sha1:f9226d572d2f8b5f564596db8c6a13e458c46191</id>
<content type='text'>
After the merge of the 32 and 64bit DMA code, dma_direct_ops lost
their map/unmap_single() functions but gained map/unmap_page().  This
caused a problem for Cell because Cell's dma_iommu_fixed_ops called
the dma_direct_ops if the fixed linear mapping was to be used or the
iommu ops if the dynamic window was to be used.  So in order to fix
this problem we need to update the 64bit DMA code to use
map/unmap_page.

First, we update the generic IOMMU code so that iommu_map_single()
becomes iommu_map_page() and iommu_unmap_single() becomes
iommu_unmap_page().  Then we propagate these changes up through all
the callers of these two functions and in the process update all the
dma_mapping_ops so that they have map/unmap_page rahter than
map/unmap_single.  We can do this because on 64bit there is no HIGHMEM
memory so map/unmap_page ends up performing exactly the same function
as map/unmap_single, just taking different arguments.

This has no affect on drivers because the dma_map_single_attrs() just
ends up calling the map_page() function of the appropriate
dma_mapping_ops and similarly the dma_unmap_single_attrs() calls
unmap_page().

This fixes an oops on Cell blades, which oops on boot without this
because they call dma_direct_ops.map_single, which is NULL.

Signed-off-by: Mark Nelson &lt;markn@au1.ibm.com&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
<entry>
<title>powerpc: Use is_kdump_kernel()</title>
<updated>2008-10-31T05:11:47Z</updated>
<author>
<name>Milton Miller</name>
</author>
<published>2008-10-22T20:39:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=62a8bd6c9246c0e1f19dfb8fc65ad7c4f7cac8bb'/>
<id>urn:sha1:62a8bd6c9246c0e1f19dfb8fc65ad7c4f7cac8bb</id>
<content type='text'>
linux/crash_dump.h defines is_kdump_kernel() to be used by code that
needs to know if the previous kernel crashed instead of a (clean) boot
or reboot.

This updates the just added powerpc code to use it.  This is needed
for the next commit, which will remove __kdump_flag.

Signed-off-by: Milton Miller &lt;miltonm@bga.com&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6</title>
<updated>2008-10-23T17:22:40Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2008-10-23T17:22:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5ed487bc2c44ca4e9668ef9cb54c830e2a9fac47'/>
<id>urn:sha1:5ed487bc2c44ca4e9668ef9cb54c830e2a9fac47</id>
<content type='text'>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (46 commits)
  [PATCH] fs: add a sanity check in d_free
  [PATCH] i_version: remount support
  [patch] vfs: make security_inode_setattr() calling consistent
  [patch 1/3] FS_MBCACHE: don't needlessly make it built-in
  [PATCH] move executable checking into -&gt;permission()
  [PATCH] fs/dcache.c: update comment of d_validate()
  [RFC PATCH] touch_mnt_namespace when the mount flags change
  [PATCH] reiserfs: add missing llseek method
  [PATCH] fix -&gt;llseek for more directories
  [PATCH vfs-2.6 6/6] vfs: add LOOKUP_RENAME_TARGET intent
  [PATCH vfs-2.6 5/6] vfs: remove LOOKUP_PARENT from non LOOKUP_PARENT lookup
  [PATCH vfs-2.6 4/6] vfs: remove unnecessary fsnotify_d_instantiate()
  [PATCH vfs-2.6 3/6] vfs: add __d_instantiate() helper
  [PATCH vfs-2.6 2/6] vfs: add d_ancestor()
  [PATCH vfs-2.6 1/6] vfs: replace parent == dentry-&gt;d_parent by IS_ROOT()
  [PATCH] get rid of on-stack dentry in udf
  [PATCH 2/2] anondev: switch to IDA
  [PATCH 1/2] anondev: init IDR statically
  [JFFS2] Use d_splice_alias() not d_add() in jffs2_lookup()
  [PATCH] Optimise NFS readdir hack slightly.
  ...
</content>
</entry>
<entry>
<title>[PATCH] don't pass bogus flags to LOOKUP_PARENT lookup in spufs</title>
<updated>2008-10-23T09:12:55Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2008-08-03T02:40:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2c552d81363e0dac66d478046cc8a3948a67eae9'/>
<id>urn:sha1:2c552d81363e0dac66d478046cc8a3948a67eae9</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
</feed>
