]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
2 more .23 patches
authorGreg Kroah-Hartman <gregkh@suse.de>
Wed, 14 Nov 2007 00:33:32 +0000 (16:33 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 14 Nov 2007 00:33:32 +0000 (16:33 -0800)
queue-2.6.23/char-moxa-fix-and-optimise-empty-timer.patch [new file with mode: 0644]
queue-2.6.23/char-rocket-fix-dynamic_dev-tty.patch [new file with mode: 0644]
queue-2.6.23/series

diff --git a/queue-2.6.23/char-moxa-fix-and-optimise-empty-timer.patch b/queue-2.6.23/char-moxa-fix-and-optimise-empty-timer.patch
new file mode 100644 (file)
index 0000000..b1b634b
--- /dev/null
@@ -0,0 +1,48 @@
+From c43422053bea7a5ce09f18d0c50a606fe1a549f4 Mon Sep 17 00:00:00 2001
+From: Jiri Slaby <jirislaby@gmail.com>
+Date: Thu, 18 Oct 2007 03:06:19 -0700
+Subject: [PATCH] Char: moxa, fix and optimise empty timer
+Message-ID: <471CF199.1070404@gmail.com>
+
+
+From: Jiri Slaby <jirislaby@gmail.com>
+
+patch c43422053bea7a5ce09f18d0c50a606fe1a549f4 in mainline.
+
+moxa, fix and optimise empty timer
+
+don't wait and delete empty timer in empty timer function. Also fire next
+empty timer at rounded jiffies to save power.
+
+This fixes a lockup, because we wait for ourselves to finish forever.
+(i.e.  sync called from the timer itself).
+
+
+Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/char/moxa.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/char/moxa.c
++++ b/drivers/char/moxa.c
+@@ -1040,14 +1040,14 @@ static void check_xmit_empty(unsigned lo
+       struct moxa_port *ch;
+       ch = (struct moxa_port *) data;
+-      del_timer_sync(&moxa_ports[ch->port].emptyTimer);
+       if (ch->tty && (ch->statusflags & EMPTYWAIT)) {
+               if (MoxaPortTxQueue(ch->port) == 0) {
+                       ch->statusflags &= ~EMPTYWAIT;
+                       tty_wakeup(ch->tty);
+                       return;
+               }
+-              mod_timer(&moxa_ports[ch->port].emptyTimer, jiffies + HZ);
++              mod_timer(&moxa_ports[ch->port].emptyTimer,
++                              round_jiffies(jiffies + HZ));
+       } else
+               ch->statusflags &= ~EMPTYWAIT;
+ }
diff --git a/queue-2.6.23/char-rocket-fix-dynamic_dev-tty.patch b/queue-2.6.23/char-rocket-fix-dynamic_dev-tty.patch
new file mode 100644 (file)
index 0000000..682ad1b
--- /dev/null
@@ -0,0 +1,70 @@
+From ac6aec2f5683588361ab408cb3346b08c66bdfbe Mon Sep 17 00:00:00 2001
+From: Jiri Slaby <jirislaby@gmail.com>
+Date: Thu, 18 Oct 2007 03:06:26 -0700
+Subject: [PATCH] Char: rocket, fix dynamic_dev tty
+Message-ID: <471CF2ED.1040904@gmail.com>
+
+From: Jiri Slaby <jirislaby@gmail.com>
+
+patch ac6aec2f5683588361ab408cb3346b08c66bdfbe in mainline.
+
+- register_device unconditionally (non-pci dependent) to have also isa
+  devices in /dev
+- unregister devices on module removal
+- don't set TTY_DRIVER_DYNAMIC_DEV twice (removed the one dependent on some
+  macro)
+
+This is the substantial part of the patch and the previous point is for
+not checking which devices to unregister and which not (simply register
+and unregister all found no matter on which bus they are plugged).
+
+
+Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
+Cc: Ferenc Wagner <wferi@niif.hu>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/char/rocket.c |   14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+--- a/drivers/char/rocket.c
++++ b/drivers/char/rocket.c
+@@ -699,8 +699,8 @@ static void init_r_port(int board, int a
+       spin_lock_init(&info->slock);
+       mutex_init(&info->write_mtx);
+       rp_table[line] = info;
+-      if (pci_dev)
+-              tty_register_device(rocket_driver, line, &pci_dev->dev);
++      tty_register_device(rocket_driver, line, pci_dev ? &pci_dev->dev :
++                      NULL);
+ }
+ /*
+@@ -2434,7 +2434,7 @@ static int __init rp_init(void)
+       rocket_driver->init_termios.c_ispeed = 9600;
+       rocket_driver->init_termios.c_ospeed = 9600;
+ #ifdef ROCKET_SOFT_FLOW
+-      rocket_driver->flags |= TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV;
++      rocket_driver->flags |= TTY_DRIVER_REAL_RAW;
+ #endif
+       tty_set_operations(rocket_driver, &rocket_ops);
+@@ -2491,10 +2491,14 @@ static void rp_cleanup_module(void)
+       if (retval)
+               printk(KERN_INFO "Error %d while trying to unregister "
+                      "rocketport driver\n", -retval);
+-      put_tty_driver(rocket_driver);
+       for (i = 0; i < MAX_RP_PORTS; i++)
+-              kfree(rp_table[i]);
++              if (rp_table[i]) {
++                      tty_unregister_device(rocket_driver, i);
++                      kfree(rp_table[i]);
++              }
++
++      put_tty_driver(rocket_driver);
+       for (i = 0; i < NUM_BOARDS; i++) {
+               if (rcktpt_io_addr[i] <= 0 || is_PCI[i])
index bbb27af398352db64e6bfa32522d062896930c64..a299acc294b2162d9ff5a80b173b9af16a5cf46f 100644 (file)
@@ -56,3 +56,5 @@ tg3-fix-performance-regression-on-5705.patch
 nfs-fix-a-writeback-race.patch
 md-fix-an-unsigned-compare-to-allow-creation-of-bitmaps-with-v1.0-metadata.patch
 md-raid5-fix-clearing-of-biofill-operations.patch
+char-rocket-fix-dynamic_dev-tty.patch
+char-moxa-fix-and-optimise-empty-timer.patch