====== spidernet-irq.diff ====== Subject: spidernet enable poll() before registering interrupts From: Arnd Bergmann We must not call netif_poll_enable after enabling interrupts, because an interrupt might come in and set the __LINK_STATE_RX_SCHED bit before we get to clear that bit again. If that happens, the next call to the ->poll() function will oops. Signed-off-by: Arnd Bergmann --- diffstat: spider_net.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ====== 36920.diff ====== Subject: spusched: fix null pointer dereference in find_victim From: Christoph Hellwig find_victim can dereference a NULL pointer when iterating over the list of victim spus because list_mutex only guarantees spu->ct to be stable, but of course not to be non-NULL. Also fix find_victim to not call spu_unbind_context without list_mutex because that violates the above guarantee. Signed-off-by: Christoph Hellwig Signed-off-by: Arnd Bergmann --- diffstat: sched.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) ====== 38125.diff ====== Subject: Don't return -ENOSYS as extra notes size if spufs is not loaded From: Michael Ellerman Because the SPU coredump code might be built as part of a module (spufs), we have a stub which is called by the coredump code, this routine then calls into spufs if it's loaded. Unfortunately the stub returns -ENOSYS if spufs is not loaded, which is interpreted by the coredump code as an extra note size of -38 bytes. This leads to a corrupt core dump. If spufs is not loaded there will be no SPU ELF notes to write, and so the extra notes size will be == 0. Signed-off-by: Michael Ellerman Signed-off-by: Arnd Bergmann 244f9abbc53d0a2dcebfda90817d251f43e1cf16 --- diffstat: spu_coredump.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) ====== 37778.diff ====== Subject: spufs: Remove ctx_info and ctx_info_list From: Michael Ellerman Remove the ctx_info struct entirely, and also the ctx_info_list. This fixes a race where two processes can clobber each other's ctx_info structs. Instead of using the list, we just repeat the search through the file descriptor table. Signed-off-by: Michael Ellerman Signed-off-by: Arnd Bergmann --- --- diffstat: coredump.c | 133 +++++++++++++++++------------------------ 1 file changed, 56 insertions(+), 77 deletions(-) ====== 37991.diff ====== Subject: cell: Safer of_has_vicinity routine From: Andre Detsch This patch changes the way we check for the existence of vicinity property in spe device nodes. The new implementation does not depend on having an initialized cbe_spu_info[0].spus, and checks for presence of vicinity in all nodes, not only in the first one. Basically a copy & paste from Arnd's suggestion sent to cbe-oss-dev. Signed-off-by: Andre Detsch Signed-off-by: Arnd Bergmann --- diffstat: spu_manage.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) ====== 36651.diff ====== Subject: spufs: block in spu_acquire_runnable From: Arnd Bergmann This patch disables the logic that under the covers faults in spu contexts from the page fault handler. For the upstream version, we want something similar, but this is a relatively straightforward patch to make the review easier. Signed-off-by: Arnd Bergmann --- diffstat: context.c | 1 + file.c | 25 ++++++++++++++++++------- sched.c | 1 + spufs.h | 1 + 4 files changed, 21 insertions(+), 7 deletions(-)