]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
add more 2.6.16 -stable patches
authorGreg Kroah-Hartman <gregkh@suse.de>
Thu, 6 Apr 2006 16:16:49 +0000 (09:16 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 6 Apr 2006 16:16:49 +0000 (09:16 -0700)
queue-2.6.16/isd200-limit-to-blk_dev_ide.patch [new file with mode: 0644]
queue-2.6.16/mpbl0010-driver-sysfs-permissions-wide-open.patch [new file with mode: 0644]
queue-2.6.16/powerpc-fix-incorrect-sa_onstack-behaviour-for-64-bit-processes.patch [new file with mode: 0644]
queue-2.6.16/powerpc-iseries-needs-slb_initialize-to-be-called.patch [new file with mode: 0644]
queue-2.6.16/series [new file with mode: 0644]

diff --git a/queue-2.6.16/isd200-limit-to-blk_dev_ide.patch b/queue-2.6.16/isd200-limit-to-blk_dev_ide.patch
new file mode 100644 (file)
index 0000000..b5cadff
--- /dev/null
@@ -0,0 +1,34 @@
+From stable-bounces@linux.kernel.org Wed Apr  5 12:01:43 2006
+Date: Wed, 5 Apr 2006 12:03:45 -0700
+From: "Randy.Dunlap" <rdunlap@xenotime.net>
+To: stable@kernel.org, lkml <linux-kernel@vger.kernel.org>
+Message-Id: <20060405120345.6ad380de.rdunlap@xenotime.net>
+Cc: 
+Subject: isd200: limit to BLK_DEV_IDE
+
+
+From: Randy Dunlap <rdunlap@xenotime.net>
+
+Limit USB_STORAGE_ISD200 to whatever BLK_DEV_IDE and USB_STORAGE
+are set to (y, m) since isd200 calls ide_fix_driveid() in the
+BLK_DEV_IDE code.
+
+Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/storage/Kconfig |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- linux-2.6.16.1.orig/drivers/usb/storage/Kconfig
++++ linux-2.6.16.1/drivers/usb/storage/Kconfig
+@@ -48,7 +48,8 @@ config USB_STORAGE_FREECOM
+ config USB_STORAGE_ISD200
+       bool "ISD-200 USB/ATA Bridge support"
+-      depends on USB_STORAGE && BLK_DEV_IDE
++      depends on USB_STORAGE
++      depends on BLK_DEV_IDE=y || BLK_DEV_IDE=USB_STORAGE
+       ---help---
+         Say Y here if you want to use USB Mass Store devices based
+         on the In-Systems Design ISD-200 USB/ATA bridge.
diff --git a/queue-2.6.16/mpbl0010-driver-sysfs-permissions-wide-open.patch b/queue-2.6.16/mpbl0010-driver-sysfs-permissions-wide-open.patch
new file mode 100644 (file)
index 0000000..d76b922
--- /dev/null
@@ -0,0 +1,191 @@
+From stable-bounces@linux.kernel.org Wed Apr  5 01:07:24 2006
+Message-Id: <200604050807.k35873Qd030205@shell0.pdx.osdl.net>
+To: mbellon@mvista.com, mark.gross@intel.com, stable@kernel.org,
+        mm-commits@vger.kernel.org
+From: akpm@osdl.org
+Date: Wed, 05 Apr 2006 01:06:06 -0700
+Cc: 
+Subject: MPBL0010 driver sysfs permissions wide open
+
+From: Mark Bellon <mbellon@mvista.com>
+
+The MPBL0010 Telco clock driver (drivers/char/tlclk.c) uses 0222 (anyone
+can write) permissions on its writable sysfs entries.  Alter the
+permissions to 0220 (owner and group can write).
+
+The use case for this driver is to configure the fail over behavior of the
+clock hardware.  That should be done by the more privileged users.
+
+Signed-off-by: Mark Bellon <mbellon@mvista.com>
+Acked-by: "Gross, Mark" <mark.gross@intel.com>
+Signed-off-by: Andrew Morton <akpm@osdl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/char/tlclk.c |   36 ++++++++++++++++++------------------
+ 1 file changed, 18 insertions(+), 18 deletions(-)
+
+--- linux-2.6.16.1.orig/drivers/char/tlclk.c
++++ linux-2.6.16.1/drivers/char/tlclk.c
+@@ -327,7 +327,7 @@ static ssize_t store_received_ref_clk3a(
+       return strnlen(buf, count);
+ }
+-static DEVICE_ATTR(received_ref_clk3a, S_IWUGO, NULL,
++static DEVICE_ATTR(received_ref_clk3a, (S_IWUSR|S_IWGRP), NULL,
+               store_received_ref_clk3a);
+@@ -349,7 +349,7 @@ static ssize_t store_received_ref_clk3b(
+       return strnlen(buf, count);
+ }
+-static DEVICE_ATTR(received_ref_clk3b, S_IWUGO, NULL,
++static DEVICE_ATTR(received_ref_clk3b, (S_IWUSR|S_IWGRP), NULL,
+               store_received_ref_clk3b);
+@@ -371,7 +371,7 @@ static ssize_t store_enable_clk3b_output
+       return strnlen(buf, count);
+ }
+-static DEVICE_ATTR(enable_clk3b_output, S_IWUGO, NULL,
++static DEVICE_ATTR(enable_clk3b_output, (S_IWUSR|S_IWGRP), NULL,
+               store_enable_clk3b_output);
+ static ssize_t store_enable_clk3a_output(struct device *d,
+@@ -392,7 +392,7 @@ static ssize_t store_enable_clk3a_output
+       return strnlen(buf, count);
+ }
+-static DEVICE_ATTR(enable_clk3a_output, S_IWUGO, NULL,
++static DEVICE_ATTR(enable_clk3a_output, (S_IWUSR|S_IWGRP), NULL,
+               store_enable_clk3a_output);
+ static ssize_t store_enable_clkb1_output(struct device *d,
+@@ -413,7 +413,7 @@ static ssize_t store_enable_clkb1_output
+       return strnlen(buf, count);
+ }
+-static DEVICE_ATTR(enable_clkb1_output, S_IWUGO, NULL,
++static DEVICE_ATTR(enable_clkb1_output, (S_IWUSR|S_IWGRP), NULL,
+               store_enable_clkb1_output);
+@@ -435,7 +435,7 @@ static ssize_t store_enable_clka1_output
+       return strnlen(buf, count);
+ }
+-static DEVICE_ATTR(enable_clka1_output, S_IWUGO, NULL,
++static DEVICE_ATTR(enable_clka1_output, (S_IWUSR|S_IWGRP), NULL,
+               store_enable_clka1_output);
+ static ssize_t store_enable_clkb0_output(struct device *d,
+@@ -456,7 +456,7 @@ static ssize_t store_enable_clkb0_output
+       return strnlen(buf, count);
+ }
+-static DEVICE_ATTR(enable_clkb0_output, S_IWUGO, NULL,
++static DEVICE_ATTR(enable_clkb0_output, (S_IWUSR|S_IWGRP), NULL,
+               store_enable_clkb0_output);
+ static ssize_t store_enable_clka0_output(struct device *d,
+@@ -477,7 +477,7 @@ static ssize_t store_enable_clka0_output
+       return strnlen(buf, count);
+ }
+-static DEVICE_ATTR(enable_clka0_output, S_IWUGO, NULL,
++static DEVICE_ATTR(enable_clka0_output, (S_IWUSR|S_IWGRP), NULL,
+               store_enable_clka0_output);
+ static ssize_t store_select_amcb2_transmit_clock(struct device *d,
+@@ -519,7 +519,7 @@ static ssize_t store_select_amcb2_transm
+       return strnlen(buf, count);
+ }
+-static DEVICE_ATTR(select_amcb2_transmit_clock, S_IWUGO, NULL,
++static DEVICE_ATTR(select_amcb2_transmit_clock, (S_IWUSR|S_IWGRP), NULL,
+       store_select_amcb2_transmit_clock);
+ static ssize_t store_select_amcb1_transmit_clock(struct device *d,
+@@ -560,7 +560,7 @@ static ssize_t store_select_amcb1_transm
+       return strnlen(buf, count);
+ }
+-static DEVICE_ATTR(select_amcb1_transmit_clock, S_IWUGO, NULL,
++static DEVICE_ATTR(select_amcb1_transmit_clock, (S_IWUSR|S_IWGRP), NULL,
+               store_select_amcb1_transmit_clock);
+ static ssize_t store_select_redundant_clock(struct device *d,
+@@ -581,7 +581,7 @@ static ssize_t store_select_redundant_cl
+       return strnlen(buf, count);
+ }
+-static DEVICE_ATTR(select_redundant_clock, S_IWUGO, NULL,
++static DEVICE_ATTR(select_redundant_clock, (S_IWUSR|S_IWGRP), NULL,
+               store_select_redundant_clock);
+ static ssize_t store_select_ref_frequency(struct device *d,
+@@ -602,7 +602,7 @@ static ssize_t store_select_ref_frequenc
+       return strnlen(buf, count);
+ }
+-static DEVICE_ATTR(select_ref_frequency, S_IWUGO, NULL,
++static DEVICE_ATTR(select_ref_frequency, (S_IWUSR|S_IWGRP), NULL,
+               store_select_ref_frequency);
+ static ssize_t store_filter_select(struct device *d,
+@@ -623,7 +623,7 @@ static ssize_t store_filter_select(struc
+       return strnlen(buf, count);
+ }
+-static DEVICE_ATTR(filter_select, S_IWUGO, NULL, store_filter_select);
++static DEVICE_ATTR(filter_select, (S_IWUSR|S_IWGRP), NULL, store_filter_select);
+ static ssize_t store_hardware_switching_mode(struct device *d,
+                struct device_attribute *attr, const char *buf, size_t count)
+@@ -643,7 +643,7 @@ static ssize_t store_hardware_switching_
+       return strnlen(buf, count);
+ }
+-static DEVICE_ATTR(hardware_switching_mode, S_IWUGO, NULL,
++static DEVICE_ATTR(hardware_switching_mode, (S_IWUSR|S_IWGRP), NULL,
+               store_hardware_switching_mode);
+ static ssize_t store_hardware_switching(struct device *d,
+@@ -664,7 +664,7 @@ static ssize_t store_hardware_switching(
+       return strnlen(buf, count);
+ }
+-static DEVICE_ATTR(hardware_switching, S_IWUGO, NULL,
++static DEVICE_ATTR(hardware_switching, (S_IWUSR|S_IWGRP), NULL,
+               store_hardware_switching);
+ static ssize_t store_refalign (struct device *d,
+@@ -684,7 +684,7 @@ static ssize_t store_refalign (struct de
+       return strnlen(buf, count);
+ }
+-static DEVICE_ATTR(refalign, S_IWUGO, NULL, store_refalign);
++static DEVICE_ATTR(refalign, (S_IWUSR|S_IWGRP), NULL, store_refalign);
+ static ssize_t store_mode_select (struct device *d,
+                struct device_attribute *attr, const char *buf, size_t count)
+@@ -704,7 +704,7 @@ static ssize_t store_mode_select (struct
+       return strnlen(buf, count);
+ }
+-static DEVICE_ATTR(mode_select, S_IWUGO, NULL, store_mode_select);
++static DEVICE_ATTR(mode_select, (S_IWUSR|S_IWGRP), NULL, store_mode_select);
+ static ssize_t store_reset (struct device *d,
+                struct device_attribute *attr, const char *buf, size_t count)
+@@ -724,7 +724,7 @@ static ssize_t store_reset (struct devic
+       return strnlen(buf, count);
+ }
+-static DEVICE_ATTR(reset, S_IWUGO, NULL, store_reset);
++static DEVICE_ATTR(reset, (S_IWUSR|S_IWGRP), NULL, store_reset);
+ static struct attribute *tlclk_sysfs_entries[] = {
+       &dev_attr_current_ref.attr,
diff --git a/queue-2.6.16/powerpc-fix-incorrect-sa_onstack-behaviour-for-64-bit-processes.patch b/queue-2.6.16/powerpc-fix-incorrect-sa_onstack-behaviour-for-64-bit-processes.patch
new file mode 100644 (file)
index 0000000..80154c0
--- /dev/null
@@ -0,0 +1,43 @@
+From stable-bounces@linux.kernel.org Wed Apr  5 15:45:44 2006
+Message-ID: <17460.18559.549046.697967@cargo.ozlabs.ibm.com>
+Date: Thu, 6 Apr 2006 08:45:19 +1000
+From: Paul Mackerras <paulus@samba.org>
+To: stable@kernel.org
+Cc: 
+Subject: powerpc: fix incorrect SA_ONSTACK behaviour for 64-bit processes
+
+From: Laurent MEYER <meyerlau@fr.ibm.com>
+
+*) When setting a sighandler using sigaction() call, if the flag
+SA_ONSTACK is set and no alternate stack is provided via sigaltstack(),
+the kernel still try to install the alternate stack. This behavior is
+the opposite of the one which is documented in Single Unix
+Specifications V3.
+
+*) Also when setting an alternate stack using sigaltstack() with the
+flag SS_DISABLE, the kernel try to install the alternate stack on
+signal delivery.
+
+These two use cases makes the process crash at signal delivery.
+
+This fixes it.
+
+Signed-off-by: Laurent Meyer <meyerlau@fr.ibm.com>
+Signed-off-by: Paul Mackerras <paulus@samba.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/powerpc/kernel/signal_64.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- linux-2.6.16.1.orig/arch/powerpc/kernel/signal_64.c
++++ linux-2.6.16.1/arch/powerpc/kernel/signal_64.c
+@@ -213,7 +213,7 @@ static inline void __user * get_sigframe
+         /* Default to using normal stack */
+         newsp = regs->gpr[1];
+-      if (ka->sa.sa_flags & SA_ONSTACK) {
++      if ((ka->sa.sa_flags & SA_ONSTACK) && current->sas_ss_size) {
+               if (! on_sig_stack(regs->gpr[1]))
+                       newsp = (current->sas_ss_sp + current->sas_ss_size);
+       }
diff --git a/queue-2.6.16/powerpc-iseries-needs-slb_initialize-to-be-called.patch b/queue-2.6.16/powerpc-iseries-needs-slb_initialize-to-be-called.patch
new file mode 100644 (file)
index 0000000..10edc03
--- /dev/null
@@ -0,0 +1,43 @@
+From stable-bounces@linux.kernel.org Tue Apr  4 17:41:50 2006
+Date: Wed, 5 Apr 2006 10:41:21 +1000
+From: Stephen Rothwell <sfr@canb.auug.org.au>
+To: stable@kernel.org
+Message-Id: <20060405104121.79b0ebd9.sfr@canb.auug.org.au>
+Cc: paulus@samba.org, anton@samba.org
+Subject: powerpc: iSeries needs slb_initialize to be called
+
+Since the powerpc 64k pages patch went in, systems that have SLBs
+(like Power4 iSeries) needed to have slb_initialize called to set up
+some variables for the SLB miss handler.  This was not being called
+on the boot processor on iSeries, so on single cpu iSeries machines,
+we would get apparent memory curruption as soon as we entered user mode.
+
+This patch fixes that by calling slb_initialize on the boot cpu if the
+processor has an SLB.
+
+Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/powerpc/kernel/setup_64.c |   10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+--- linux-2.6.16.1.orig/arch/powerpc/kernel/setup_64.c
++++ linux-2.6.16.1/arch/powerpc/kernel/setup_64.c
+@@ -256,12 +256,10 @@ void __init early_setup(unsigned long dt
+       /*
+        * Initialize stab / SLB management except on iSeries
+        */
+-      if (!firmware_has_feature(FW_FEATURE_ISERIES)) {
+-              if (cpu_has_feature(CPU_FTR_SLB))
+-                      slb_initialize();
+-              else
+-                      stab_initialize(lpaca->stab_real);
+-      }
++      if (cpu_has_feature(CPU_FTR_SLB))
++              slb_initialize();
++      else if (!firmware_has_feature(FW_FEATURE_ISERIES))
++              stab_initialize(lpaca->stab_real);
+       DBG(" <- early_setup()\n");
+ }
diff --git a/queue-2.6.16/series b/queue-2.6.16/series
new file mode 100644 (file)
index 0000000..12b5e3c
--- /dev/null
@@ -0,0 +1,4 @@
+powerpc-iseries-needs-slb_initialize-to-be-called.patch
+powerpc-fix-incorrect-sa_onstack-behaviour-for-64-bit-processes.patch
+mpbl0010-driver-sysfs-permissions-wide-open.patch
+isd200-limit-to-blk_dev_ide.patch