]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.0-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 May 2013 02:30:13 +0000 (19:30 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 May 2013 02:30:13 +0000 (19:30 -0700)
added patches:
powerpc-add-isync-to-copy_and_flush.patch
powerpc-spufs-initialise-inode-i_ino-in-spufs_new_inode.patch

queue-3.0/powerpc-add-isync-to-copy_and_flush.patch [new file with mode: 0644]
queue-3.0/powerpc-spufs-initialise-inode-i_ino-in-spufs_new_inode.patch [new file with mode: 0644]
queue-3.0/series

diff --git a/queue-3.0/powerpc-add-isync-to-copy_and_flush.patch b/queue-3.0/powerpc-add-isync-to-copy_and_flush.patch
new file mode 100644 (file)
index 0000000..c40b926
--- /dev/null
@@ -0,0 +1,43 @@
+From 29ce3c5073057991217916abc25628e906911757 Mon Sep 17 00:00:00 2001
+From: Michael Neuling <michael.neuling@au1.ibm.com>
+Date: Wed, 24 Apr 2013 00:30:09 +0000
+Subject: powerpc: Add isync to copy_and_flush
+
+From: Michael Neuling <michael.neuling@au1.ibm.com>
+
+commit 29ce3c5073057991217916abc25628e906911757 upstream.
+
+In __after_prom_start we copy the kernel down to zero in two calls to
+copy_and_flush.  After the first call (copy from 0 to copy_to_here:)
+we jump to the newly copied code soon after.
+
+Unfortunately there's no isync between the copy of this code and the
+jump to it.  Hence it's possible that stale instructions could still be
+in the icache or pipeline before we branch to it.
+
+We've seen this on real machines and it's results in no console output
+after:
+  calling quiesce...
+  returning from prom_init
+
+The below adds an isync to ensure that the copy and flushing has
+completed before any branching to the new instructions occurs.
+
+Signed-off-by: Michael Neuling <mikey@neuling.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/kernel/head_64.S |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/powerpc/kernel/head_64.S
++++ b/arch/powerpc/kernel/head_64.S
+@@ -492,6 +492,7 @@ _GLOBAL(copy_and_flush)
+       sync
+       addi    r5,r5,8
+       addi    r6,r6,8
++      isync
+       blr
+ .align 8
diff --git a/queue-3.0/powerpc-spufs-initialise-inode-i_ino-in-spufs_new_inode.patch b/queue-3.0/powerpc-spufs-initialise-inode-i_ino-in-spufs_new_inode.patch
new file mode 100644 (file)
index 0000000..545a327
--- /dev/null
@@ -0,0 +1,34 @@
+From 6747e83235caecd30b186d1282e4eba7679f81b7 Mon Sep 17 00:00:00 2001
+From: Michael Ellerman <michael@ellerman.id.au>
+Date: Tue, 23 Apr 2013 15:13:14 +0000
+Subject: powerpc/spufs: Initialise inode->i_ino in spufs_new_inode()
+
+From: Michael Ellerman <michael@ellerman.id.au>
+
+commit 6747e83235caecd30b186d1282e4eba7679f81b7 upstream.
+
+In commit 85fe402 (fs: do not assign default i_ino in new_inode), the
+initialisation of i_ino was removed from new_inode() and pushed down
+into the callers. However spufs_new_inode() was not updated.
+
+This exhibits as no files appearing in /spu, because all our dirents
+have a zero inode, which readdir() seems to dislike.
+
+Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/platforms/cell/spufs/inode.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/powerpc/platforms/cell/spufs/inode.c
++++ b/arch/powerpc/platforms/cell/spufs/inode.c
+@@ -100,6 +100,7 @@ spufs_new_inode(struct super_block *sb,
+       if (!inode)
+               goto out;
++      inode->i_ino = get_next_ino();
+       inode->i_mode = mode;
+       inode->i_uid = current_fsuid();
+       inode->i_gid = current_fsgid();
index 451b06f0a0fcd8c5a0f074b0541285d3aea8652d..73d3e75f96940e175503ad699f7d86665dcd3a00 100644 (file)
@@ -1,2 +1,4 @@
+powerpc-add-isync-to-copy_and_flush.patch
+powerpc-spufs-initialise-inode-i_ino-in-spufs_new_inode.patch
 usb-serial-option-added-support-olivetti-olicard-145.patch
 usb-option-add-a-d-link-dwm-156-variant.patch