All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Fix cyclades async driver timeout miscalculation
@ 2004-03-27  5:39 Marcelo Tosatti
  0 siblings, 0 replies; only message in thread
From: Marcelo Tosatti @ 2004-03-27  5:39 UTC (permalink / raw)
  To: torvalds, akpm; +Cc: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 262 bytes --]


Hi, 

The attached patch fixes a problem where cy_wait_until_sent()
miscalculates (calculate -1 on a unsigned long) the "char_time" 
parameter passed to schedule_timeout(). 

Fix that by making it a signed long, and checking for 
negative value.

Please apply.

[-- Attachment #2: cy_wait_fix.patch --]
[-- Type: text/plain, Size: 812 bytes --]

--- linux-2.6.4/drivers/char/cyclades.c.orig	2004-03-27 02:30:40.050030160 -0300
+++ linux-2.6.4/drivers/char/cyclades.c	2004-03-27 02:30:44.878296152 -0300
@@ -2679,7 +2679,8 @@ cy_wait_until_sent(struct tty_struct *tt
   struct cyclades_port * info = (struct cyclades_port *)tty->driver_data;
   unsigned char *base_addr;
   int card,chip,channel,index;
-  unsigned long orig_jiffies, char_time;
+  unsigned long orig_jiffies;
+  signed long char_time;
 	
     if (serial_paranoia_check(info, tty->name, "cy_wait_until_sent"))
 	return;
@@ -2699,7 +2700,7 @@ cy_wait_until_sent(struct tty_struct *tt
      */
     char_time = (info->timeout - HZ/50) / info->xmit_fifo_size;
     char_time = char_time / 5;
-    if (char_time == 0)
+    if (char_time <= 0)
 	char_time = 1;
     if (timeout < 0)
 	timeout = 0;

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2004-03-27  5:48 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-03-27  5:39 [PATCH] Fix cyclades async driver timeout miscalculation Marcelo Tosatti

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.