]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
more 2.6.22 patches
authorGreg Kroah-Hartman <gregkh@suse.de>
Tue, 7 Aug 2007 18:54:58 +0000 (11:54 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 7 Aug 2007 18:54:58 +0000 (11:54 -0700)
queue-2.6.22/series
queue-2.6.22/sx-switch-subven-and-subid-values.patch [new file with mode: 0644]
queue-2.6.22/uml-exports-for-hostfs.patch [new file with mode: 0644]
queue-2.6.22/usb-fix-for-ftdi_sio-quirk-handling.patch [new file with mode: 0644]

index d8a94c5d8e7484f43927bbaee9bdda065a638833..b61d23bb8604eebba9b5076d5afc0e39d0a8093f 100644 (file)
@@ -79,3 +79,6 @@ nf_conntrack-don-t-track-locally-generated-special-icmp-error.patch
 proc-net-anycast6-unbalanced-inet6_dev-refcnt.patch
 sysfs-release-mutex-when-kmalloc-failed-in-sysfs_open_file.patch
 netfilter-fix-logging-regression.patch
+usb-fix-for-ftdi_sio-quirk-handling.patch
+sx-switch-subven-and-subid-values.patch
+uml-exports-for-hostfs.patch
diff --git a/queue-2.6.22/sx-switch-subven-and-subid-values.patch b/queue-2.6.22/sx-switch-subven-and-subid-values.patch
new file mode 100644 (file)
index 0000000..ffb8577
--- /dev/null
@@ -0,0 +1,36 @@
+From stable-bounces@linux.kernel.org Tue Jul 10 17:23:28 2007
+From: Jiri Slaby <jirislaby@gmail.com>
+Date: Tue, 10 Jul 2007 17:22:25 -0700
+Subject: sx: switch subven and subid values
+To: torvalds@linux-foundation.org
+Cc: akpm@linux-foundation.org, gmurray@webwayone.co.uk, jirislaby@gmail.com, stable@kernel.org
+Message-ID: <200707110022.l6B0MPrX009869@imap1.linux-foundation.org>
+
+
+From: Jiri Slaby <jirislaby@gmail.com>
+
+sx.c is failing to locate Graham's card.
+
+Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
+Cc: Graham Murray <gmurray@webwayone.co.uk>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/char/sx.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/char/sx.c
++++ b/drivers/char/sx.c
+@@ -2721,9 +2721,9 @@ static void __devexit sx_pci_remove(stru
+    its because the standard requires it. So check for SUBVENDOR_ID. */
+ static struct pci_device_id sx_pci_tbl[] = {
+       { PCI_VENDOR_ID_SPECIALIX, PCI_DEVICE_ID_SPECIALIX_SX_XIO_IO8,
+-              .subvendor = 0x0200,.subdevice = PCI_ANY_ID },
++              .subvendor = PCI_ANY_ID, .subdevice = 0x0200 },
+       { PCI_VENDOR_ID_SPECIALIX, PCI_DEVICE_ID_SPECIALIX_SX_XIO_IO8,
+-              .subvendor = 0x0300,.subdevice = PCI_ANY_ID },
++              .subvendor = PCI_ANY_ID, .subdevice = 0x0300 },
+       { 0 }
+ };
diff --git a/queue-2.6.22/uml-exports-for-hostfs.patch b/queue-2.6.22/uml-exports-for-hostfs.patch
new file mode 100644 (file)
index 0000000..9f37237
--- /dev/null
@@ -0,0 +1,67 @@
+From stable-bounces@linux.kernel.org Tue Jul 10 17:33:49 2007
+From: Jeff Dike <jdike@addtoit.com>
+Date: Tue, 10 Jul 2007 12:49:04 -0400
+Subject: UML: exports for hostfs
+To: stable@kernel.org
+Cc: uml-devel <user-mode-linux-devel@lists.sourceforge.net>
+Message-ID: <20070710164904.GA7825@c2.user-mode-linux.org>
+
+
+Add some exports for hostfs that are required after Alberto Bertogli's
+fixes for accessing unlinked host files.
+
+Also did some style cleanups while I was here.
+
+Signed-off-by: Jeff Dike <jdike@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/um/os-Linux/user_syms.c |   20 ++++++++------------
+ 1 file changed, 8 insertions(+), 12 deletions(-)
+
+--- a/arch/um/os-Linux/user_syms.c
++++ b/arch/um/os-Linux/user_syms.c
+@@ -5,7 +5,8 @@
+  * so I *must* declare good prototypes for them and then EXPORT them.
+  * The kernel code uses the macro defined by include/linux/string.h,
+  * so I undef macros; the userspace code does not include that and I
+- * add an EXPORT for the glibc one.*/
++ * add an EXPORT for the glibc one.
++ */
+ #undef strlen
+ #undef strstr
+@@ -61,12 +62,18 @@ EXPORT_SYMBOL_PROTO(dup2);
+ EXPORT_SYMBOL_PROTO(__xstat);
+ EXPORT_SYMBOL_PROTO(__lxstat);
+ EXPORT_SYMBOL_PROTO(__lxstat64);
++EXPORT_SYMBOL_PROTO(__fxstat64);
+ EXPORT_SYMBOL_PROTO(lseek);
+ EXPORT_SYMBOL_PROTO(lseek64);
+ EXPORT_SYMBOL_PROTO(chown);
++EXPORT_SYMBOL_PROTO(fchown);
+ EXPORT_SYMBOL_PROTO(truncate);
++EXPORT_SYMBOL_PROTO(ftruncate64);
+ EXPORT_SYMBOL_PROTO(utime);
++EXPORT_SYMBOL_PROTO(utimes);
++EXPORT_SYMBOL_PROTO(futimes);
+ EXPORT_SYMBOL_PROTO(chmod);
++EXPORT_SYMBOL_PROTO(fchmod);
+ EXPORT_SYMBOL_PROTO(rename);
+ EXPORT_SYMBOL_PROTO(__xmknod);
+@@ -102,14 +109,3 @@ EXPORT_SYMBOL(__stack_smash_handler);
+ extern long __guard __attribute__((weak));
+ EXPORT_SYMBOL(__guard);
+-
+-/*
+- * Overrides for Emacs so that we follow Linus's tabbing style.
+- * Emacs will notice this stuff at the end of the file and automatically
+- * adjust the settings for this buffer only.  This must remain at the end
+- * of the file.
+- * ---------------------------------------------------------------------------
+- * Local variables:
+- * c-file-style: "linux"
+- * End:
+- */
diff --git a/queue-2.6.22/usb-fix-for-ftdi_sio-quirk-handling.patch b/queue-2.6.22/usb-fix-for-ftdi_sio-quirk-handling.patch
new file mode 100644 (file)
index 0000000..2490712
--- /dev/null
@@ -0,0 +1,205 @@
+From oliver@neukum.org Mon Jul  2 07:20:32 2007
+From: Oliver Neukum <oliver@neukum.org>
+Date: Mon, 2 Jul 2007 16:20:25 +0200
+Subject: USB: fix for ftdi_sio quirk handling
+To: gregkh@suse.de, linux-usb-devel@lists.sourceforge.net
+Message-ID: <200707021620.25672.oliver@neukum.org>
+Content-Disposition: inline
+
+
+this one fixes an oops with quirky ftdi_sio devices. As it fixes a
+regression, I propose that it be included in 2.6.22
+
+Signed-off-by: Oliver Neukum <oneukum@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/ftdi_sio.c |  104 +++++++++++++++++-------------------------
+ 1 file changed, 44 insertions(+), 60 deletions(-)
+
+--- a/drivers/usb/serial/ftdi_sio.c
++++ b/drivers/usb/serial/ftdi_sio.c
+@@ -271,26 +271,58 @@ static int debug;
+ static __u16 vendor = FTDI_VID;
+ static __u16 product;
++struct ftdi_private {
++      ftdi_chip_type_t chip_type;
++                              /* type of the device, either SIO or FT8U232AM */
++      int baud_base;          /* baud base clock for divisor setting */
++      int custom_divisor;     /* custom_divisor kludge, this is for baud_base (different from what goes to the chip!) */
++      __u16 last_set_data_urb_value ;
++                              /* the last data state set - needed for doing a break */
++        int write_offset;       /* This is the offset in the usb data block to write the serial data -
++                               * it is different between devices
++                               */
++      int flags;              /* some ASYNC_xxxx flags are supported */
++      unsigned long last_dtr_rts;     /* saved modem control outputs */
++        wait_queue_head_t delta_msr_wait; /* Used for TIOCMIWAIT */
++      char prev_status, diff_status;        /* Used for TIOCMIWAIT */
++      __u8 rx_flags;          /* receive state flags (throttling) */
++      spinlock_t rx_lock;     /* spinlock for receive state */
++      struct delayed_work rx_work;
++      struct usb_serial_port *port;
++      int rx_processed;
++      unsigned long rx_bytes;
++
++      __u16 interface;        /* FT2232C port interface (0 for FT232/245) */
++
++      int force_baud;         /* if non-zero, force the baud rate to this value */
++      int force_rtscts;       /* if non-zero, force RTS-CTS to always be enabled */
++
++      spinlock_t tx_lock;     /* spinlock for transmit state */
++      unsigned long tx_bytes;
++      unsigned long tx_outstanding_bytes;
++      unsigned long tx_outstanding_urbs;
++};
++
+ /* struct ftdi_sio_quirk is used by devices requiring special attention. */
+ struct ftdi_sio_quirk {
+       int (*probe)(struct usb_serial *);
+-      void (*setup)(struct usb_serial *); /* Special settings during startup. */
++      void (*port_probe)(struct ftdi_private *); /* Special settings for probed ports. */
+ };
+ static int   ftdi_olimex_probe                (struct usb_serial *serial);
+-static void  ftdi_USB_UIRT_setup      (struct usb_serial *serial);
+-static void  ftdi_HE_TIRA1_setup      (struct usb_serial *serial);
++static void  ftdi_USB_UIRT_setup      (struct ftdi_private *priv);
++static void  ftdi_HE_TIRA1_setup      (struct ftdi_private *priv);
+ static struct ftdi_sio_quirk ftdi_olimex_quirk = {
+       .probe  = ftdi_olimex_probe,
+ };
+ static struct ftdi_sio_quirk ftdi_USB_UIRT_quirk = {
+-      .setup = ftdi_USB_UIRT_setup,
++      .port_probe = ftdi_USB_UIRT_setup,
+ };
+ static struct ftdi_sio_quirk ftdi_HE_TIRA1_quirk = {
+-      .setup = ftdi_HE_TIRA1_setup,
++      .port_probe = ftdi_HE_TIRA1_setup,
+ };
+ /*
+@@ -567,38 +599,6 @@ static const char *ftdi_chip_name[] = {
+ #define THROTTLED             0x01
+ #define ACTUALLY_THROTTLED    0x02
+-struct ftdi_private {
+-      ftdi_chip_type_t chip_type;
+-                              /* type of the device, either SIO or FT8U232AM */
+-      int baud_base;          /* baud base clock for divisor setting */
+-      int custom_divisor;     /* custom_divisor kludge, this is for baud_base (different from what goes to the chip!) */
+-      __u16 last_set_data_urb_value ;
+-                              /* the last data state set - needed for doing a break */
+-        int write_offset;       /* This is the offset in the usb data block to write the serial data -
+-                               * it is different between devices
+-                               */
+-      int flags;              /* some ASYNC_xxxx flags are supported */
+-      unsigned long last_dtr_rts;     /* saved modem control outputs */
+-        wait_queue_head_t delta_msr_wait; /* Used for TIOCMIWAIT */
+-      char prev_status, diff_status;        /* Used for TIOCMIWAIT */
+-      __u8 rx_flags;          /* receive state flags (throttling) */
+-      spinlock_t rx_lock;     /* spinlock for receive state */
+-      struct delayed_work rx_work;
+-      struct usb_serial_port *port;
+-      int rx_processed;
+-      unsigned long rx_bytes;
+-
+-      __u16 interface;        /* FT2232C port interface (0 for FT232/245) */
+-
+-      int force_baud;         /* if non-zero, force the baud rate to this value */
+-      int force_rtscts;       /* if non-zero, force RTS-CTS to always be enabled */
+-
+-      spinlock_t tx_lock;     /* spinlock for transmit state */
+-      unsigned long tx_bytes;
+-      unsigned long tx_outstanding_bytes;
+-      unsigned long tx_outstanding_urbs;
+-};
+-
+ /* Used for TIOCMIWAIT */
+ #define FTDI_STATUS_B0_MASK   (FTDI_RS0_CTS | FTDI_RS0_DSR | FTDI_RS0_RI | FTDI_RS0_RLSD)
+ #define FTDI_STATUS_B1_MASK   (FTDI_RS_BI)
+@@ -609,7 +609,6 @@ struct ftdi_private {
+ /* function prototypes for a FTDI serial converter */
+ static int  ftdi_sio_probe    (struct usb_serial *serial, const struct usb_device_id *id);
+-static int  ftdi_sio_attach           (struct usb_serial *serial);
+ static void ftdi_shutdown             (struct usb_serial *serial);
+ static int  ftdi_sio_port_probe       (struct usb_serial_port *port);
+ static int  ftdi_sio_port_remove      (struct usb_serial_port *port);
+@@ -663,7 +662,6 @@ static struct usb_serial_driver ftdi_sio
+       .ioctl =                ftdi_ioctl,
+       .set_termios =          ftdi_set_termios,
+       .break_ctl =            ftdi_break_ctl,
+-      .attach =               ftdi_sio_attach,
+       .shutdown =             ftdi_shutdown,
+ };
+@@ -1198,6 +1196,8 @@ static int ftdi_sio_probe (struct usb_se
+ static int ftdi_sio_port_probe(struct usb_serial_port *port)
+ {
+       struct ftdi_private *priv;
++      struct ftdi_sio_quirk *quirk = usb_get_serial_data(port->serial);
++
+       dbg("%s",__FUNCTION__);
+@@ -1214,6 +1214,9 @@ static int ftdi_sio_port_probe(struct us
+          than queue a task to deliver them */
+       priv->flags = ASYNC_LOW_LATENCY;
++      if (quirk && quirk->port_probe)
++              quirk->port_probe(priv);
++
+       /* Increase the size of read buffers */
+       kfree(port->bulk_in_buffer);
+       port->bulk_in_buffer = kmalloc (BUFSZ, GFP_KERNEL);
+@@ -1244,29 +1247,13 @@ static int ftdi_sio_port_probe(struct us
+       return 0;
+ }
+-/* attach subroutine */
+-static int ftdi_sio_attach (struct usb_serial *serial)
+-{
+-      /* Check for device requiring special set up. */
+-      struct ftdi_sio_quirk *quirk = usb_get_serial_data(serial);
+-
+-      if (quirk && quirk->setup)
+-              quirk->setup(serial);
+-
+-      return 0;
+-} /* ftdi_sio_attach */
+-
+-
+ /* Setup for the USB-UIRT device, which requires hardwired
+  * baudrate (38400 gets mapped to 312500) */
+ /* Called from usbserial:serial_probe */
+-static void ftdi_USB_UIRT_setup (struct usb_serial *serial)
++static void ftdi_USB_UIRT_setup (struct ftdi_private *priv)
+ {
+-      struct ftdi_private *priv;
+-
+       dbg("%s",__FUNCTION__);
+-      priv = usb_get_serial_port_data(serial->port[0]);
+       priv->flags |= ASYNC_SPD_CUST;
+       priv->custom_divisor = 77;
+       priv->force_baud = B38400;
+@@ -1274,13 +1261,10 @@ static void ftdi_USB_UIRT_setup (struct 
+ /* Setup for the HE-TIRA1 device, which requires hardwired
+  * baudrate (38400 gets mapped to 100000) and RTS-CTS enabled.  */
+-static void ftdi_HE_TIRA1_setup (struct usb_serial *serial)
++static void ftdi_HE_TIRA1_setup (struct ftdi_private *priv)
+ {
+-      struct ftdi_private *priv;
+-
+       dbg("%s",__FUNCTION__);
+-      priv = usb_get_serial_port_data(serial->port[0]);
+       priv->flags |= ASYNC_SPD_CUST;
+       priv->custom_divisor = 240;
+       priv->force_baud = B38400;