[Cbe-oss-dev] 2.6.20-arnd4 backported fixes release

Arnd Bergmann arnd at arndb.de
Sat Jun 16 04:16:33 EST 2007


We have had a number of critical kernel bug fixes in CVS for some time now,
and never got around to prepare a release that has had all the normal
testing.

Since I know that people are waiting for the fixes, I'm now dumping the
sources out anyway, under the name of 2.6.20-arnd4. Sorry for taking that
long.

The binary kernel called "kernel-2.6.20-CBE.ppc64.rpm" that is available
on http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/
and in use by many people used the source from 2.6.20-arnd3.

The list of changes between the two follows at the end of this mail.
There were more patches related to spidernet, from Linas, but it was
not clear to me which of those are really critical, so I left
them all out for now.

All of the fixes listed here are either merged in 2.6.22-rc4, or are
not relevant there, so if you upgrade to the latest upstream version
or 2.6.22-rc4-arnd1, which is my latest release, you have all the
fixes as well.

	Arnd <><

====== axon-ram-6.diff ======
Subject: cell: updated driver for DDR2 memory on AXON

replaces axon-ram-2.diff 

From: Maxim Shchetynin <maxim at de.ibm.com>

Signed-off-by: Maxim Shchetynin <maxim at de.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann at de.ibm.com>

---
diffstat:
 Kconfig          |   10·
 sysdev/Makefile  |    1·
 sysdev/axonram.c |  385 +++++++++++++++++++++++++++++++++++
 3 files changed, 396 insertions(+)

====== add_inatomic_versions_of_get_user_and_put_user.diff ======
Subject: Add inatomic versions of __get_user and __put_user

From: Benjamin Herrenschmidt <benh at kernel.crashing.org>
Date:   Wed Apr 11 16:13:19 2007 +1000
commit e68c825bb016703eda94aac99be96de73b482d61

    Those are needed by things like alignment exception fixup handlers
    since those can now be triggered by copy_tofrom_user_inatomic.
····
Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus at samba.org>
Signed-off-by: Arnd Bergmann <arnd.bergmann at de.ibm.com>
---
diffstat:
 uaccess.h |   28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

====== alignment_exception_uses_get_put_user_inatomic.diff ======
Subject: Alignment exception uses __get/put_user_inatomic

From: Benjamin Herrenschmidt <benh at kernel.crashing.org>
commit e4ee3891db35aa9a069bb403c2a66a8fbfa274d6
Date:   Wed Apr 11 16:13:19 2007 +1000

    [POWERPC] Alignment exception uses __get/put_user_inatomic
····
    Make the alignment exception handler use the new _inatomic variants
    of __get/put_user. This fixes erroneous warnings in the very rare
    cases where we manage to have copy_tofrom_user_inatomic() trigger
    an alignment exception.
····
Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
Signed-off-by: Arnd Bergmann <arnd.bergmann at de.ibm.com>

---
diffstat:
 align.c |   56 ++++++++++++++++++++++++--------------------
 1 file changed, 31 insertions(+), 25 deletions(-)
====== spusched-fix-runqueue-wait-race.diff ======
Subject: spu sched: make addition to stop_wq and runque atomic vs wakeup

From: Luke Browning <lukebrowning at us.ibm.com>
Addition to stop_wq needs to happen before adding to the runqeueue and
under the same lock so that we don't have a race window for a lost
wake up in the spu scheduler.

Signed-off-by: Luke Browning <lukebrowning at us.ibm.com>
Signed-off-by: Christoph Hellwig <hch at lst.de>
Signed-off-by: Arnd Bergmann <arnd.bergmann at de.ibm.com>

---
diffstat:
 sched.c |   38 ++++++++++++++++----------------------
 1 file changed, 16 insertions(+), 22 deletions(-)

====== spufs-fault-builtin.diff ======
Subject: spufs: always compile fault handling builtin

From: Arnd Bergmann <arnd.bergmann at de.ibm.com>
The fault handler needs access to some non-exported symbols
of the memory management subsystem. Instead of exporting
them, we do a self-contained solution and build the fault
handling into the kernel.

Signed-off-by: Arnd Bergmann <arnd.bergmann at de.ibm.com>

---
diffstat:
 Makefile |    3 +--
 fault.c  |    3 +++
 2 files changed, 4 insertions(+), 2 deletions(-)

====== spufs-check-spu_acquire_runnable-return-value.diff ======
Subject: spufs: check spu_acquire_runnable() return value

From: Akinobu Mita <mita at fixstars.com>
This patch checks return value of spu_acquire_runnable() in
spufs_mfc_write().

Signed-off-by: Akinobu Mita <mita at fixstars.com>
Signed-off-by: Christoph Hellwig <hch at lst.de>
Signed-off-by: Arnd Bergmann <arnd.bergmann at de.ibm.com>

---
diffstat:
 file.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

====== spufs-fix-memory-leak-on-reload.diff ======
Subject: spufs: fix memory leak on spufs reloading

From: Akinobu Mita <mita at fixstars.com>
When SPU isolation mode enabled, isolated_loader would be
allocated by spufs_init_isolated_loader() on module_init().
But anyone do not free it.

This patch introduces spufs_exit_isolated_loader() which is
the opposite of spufs_init_isolated_loader() and called on
module_exit().

Cc: Arnd Bergmann <arnd at arndb.de>
Signed-off-by: Akinobu Mita <mita at fixstars.com>
Signed-off-by: Christoph Hellwig <hch at lst.de>
Signed-off-by: Arnd Bergmann <arnd.bergmann at de.ibm.com>

---
 arch/powerpc/platforms/cell/spufs/inode.c |    6 ++++++
 1 file changed, 6 insertions(+)

---
diffstat:
 inode.c |    6 ++++++
 1 file changed, 6 insertions(+)

====== spufs-use-memcpy_fromio-to-copy-from-local-store.diff ======
Subject: spufs: use memcpy_fromio() to copy from local store

From: Akinobu Mita <mita at fixstars.com>
GCC may generates inline copy loop to handle memcpy() function
instead of kernel defined memcpy(). But this inlined version of memcpy()
causes an alignment interrupt when copying from local store.

This patch uses memcpy_fromio() and memcpy_toio to copy local store
to prevent memcpy() being inlined.

Signed-off-by: Akinobu Mita <mita at fixstars.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann at de.ibm.com>

---
 arch/powerpc/platforms/cell/spufs/run.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

---
diffstat:
 run.c |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

====== spufs-memory-leak-on-spu-coredump.diff ======
Subject: spufs: fix memory leak on coredump

From: Arnd Bergmann <arnd.bergmann at de.ibm.com>
Dynamically allocated read/write buffer in spufs_arch_write_note() will
not be freed. Convert it to get_free_page at the same time.

Cc: Akinobu Mita <mita at fixstars.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann at de.ibm.com>
---
---
diffstat:
 coredump.c |   19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

====== pmi-check-for-initialized-driver-data.diff ======
Subject: powerpc: add check for initialized driver data to pmi driver

From: Christian Krafft <krafft at de.ibm.com>
This patch adds a check for the private driver data to be initialized.
The bug showed up, as the caller found a pmi device by it's type.
Whereas the pmi driver probes for the type and the name.
Since the name was not as the driver expected, it did not initialize.
A more relaxed probing will be supplied with an extra patch, too.

Signed-off-by: Christian Krafft <krafft at de.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann at de.ibm.com>

---
diffstat:
 pmi.c |    9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

====== oprofile-fix-parameter-types-in-function-defs.diff ======
Subject: OProfile: fix parameter types in function defs

From: Bob Nelson <rrnelson at us.ibm.com>
A 64-bit unsigned long parameter is being demoted to 32-bit unsigned int
as it is being passed along by several functions and eventually being
promoted back to unsigned long in the CBE module spu_task_sync.c.

Signed-off-by: Bob Nelson <rrnelson at us.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann at de.ibm.com>
---
diffstat:
 spu_task_sync.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

====== powerpc-64k-page-support-for-kexec-4.diff ======
Subject: powerpc: 64K page support for kexec

From: Luke Browning <lukebrowning at us.ibm.com>
This patch fixes a couple of kexec problems related to 64K page
support in the kernel.  kexec issues a tlbie for each pte.  The
parameters for the tlbie are the page size and the virtual address.
Support was missing for the computation of these two parameters
for 64K pages.  This patch adds that support.

Signed-off-by: Luke Browning <lukebrowning at us.ibm.com>
Acked-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
Acked-by: Olof Johansson <olof at lixom.net>
Signed-off-by: Arnd Bergmann <arnd.bergmann at de.ibm.com>

---
diffstat:
 hash_native_64.c |   88 +++++++++++++++++++++++++----------
 1 file changed, 64 insertions(+), 24 deletions(-)

====== spusched-remove-wakeup-races-minimal-backport.diff ======
Subject: spu sched: fix wakeup races

From: Christoph Hellwig <hch at lst.de>
Fix the race between checking for contexts on the runqueue and actually
waking them in spu_deactive and spu_yield.

The guts of spu_reschedule are split into a new helper called
grab_runnable_context which shows if there is a runnable thread below
a specified priority and if yes removes if from the runqueue and uses
it.  This function is used by the new __spu_deactivate hepler shared
by preemption and spu_yield to grab a new context before deactivating
a specified priority and if yes removes if from the runqueue and uses
it.  This function is used by the new __spu_deactivate hepler shared
by preemption and spu_yield to grab a new context before deactivating
the old one.

Signed-off-by: Christoph Hellwig <hch at lst.de>
Signed-off-by: Arnd Bergmann <arnd.bergmann at de.ibm.com>

---
Below is a smaller patch that fixes the race only for the scheduler
tick where it really matters, and avoids moving things around as
much as possible.

---
diffstat:
 sched.c |   51 ++++++++++++++++++++++++++++++++------------
 1 file changed, 38 insertions(+), 13 deletions(-)

====== systemsim-console-hack-2.diff ======
Subject: systemsim console hack

From: Jens Osterkamp <jens at de.ibm.com>
The systemsim (fss) hvc console ops should not be registered
when not running under the simulator. So far this has been prevented
by the presence of the rtas tokens but if these are no longer
there the driver will issue a callthru in read_ and/or write_console
even when not running under simulator and this ends up in a program
check.

Signed-off-by: Jens Osterkamp <jens at de.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann at de.ibm.com>

---
diffstat:
 hvc_fss.c |    4 ++++
 1 file changed, 4 insertions(+)

====== spufs-Fix-gang-destroy-leaks.diff ======
Subject: spufs: Fix gang destroy leaks

From: Jeremy Kerr <jk at ozlabs.org>
Previously, closing a SPE gang that still has contexts would trigger
a WARN_ON, and leak the allocated gang.

This change fixes the problem by using the gang's reference counts to
destroy the gang instead. The gangs will persist until their last
reference (be it context or open file handle) is gone.

Also, avoid using statements with side-effects in a WARN_ON().

Signed-off-by: Jeremy Kerr <jk at ozlabs.org>
Signed-off-by: Arnd Bergmann <arnd.bergmann at de.ibm.com>

---
diffstat:
 inode.c |   40 +++++-----------------------------------
 1 file changed, 5 insertions(+), 35 deletions(-)

====== cell-defconfig-2.6.20-update.diff ======
Subject: cell_defconfig: enable NLS_CODEPAGE_437

From: Jens Osterkamp <Jens.Osterkamp at de.ibm.com>
add cp437 for vfat support as requested by SDV in Raleigh

Signed-off-by: <Jens.Osterkamp at de.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann at de.ibm.com>

---
diffstat:
 cell_defconfig |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)




More information about the cbe-oss-dev mailing list