All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nishanth Aravamudan <nacc@us.ibm.com>
To: kernel-janitors@lists.osdl.org
Cc: linux-net@vger.kernel.org, netdev@oss.sgi.com
Subject: [KJ] [PATCH 4/28] net/cosa: replace schedule_timeout() with msleep()
Date: Thu, 06 Jan 2005 23:41:34 +0000	[thread overview]
Message-ID: <20050106234134.GE3055@us.ibm.com> (raw)

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

Hi,

Description: Use msleep() instead of schedule_timeout() to guarantee the task
delays as expected. Also uses the set_current_state() macro instead of direct
assignment in a pair of spots. I am still concerned about those sleeps, as
TASK_INTERRUPTIBLE() is used without any checking for signals. Hence I used
msleep() for the longer delay. Perhaps the 30 jiffy delay has not been
updated for the larger HZ values and thus could be changed to msleep(300).

Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>


--- 2.6.10-v/drivers/net/wan/cosa.c	2004-12-24 13:33:49.000000000 -0800
+++ 2.6.10/drivers/net/wan/cosa.c	2005-01-04 14:57:49.000000000 -0800
@@ -543,7 +543,7 @@ static int cosa_probe(int base, int irq,
 		 * FIXME: When this code is not used as module, we should
 		 * probably call udelay() instead of the interruptible sleep.
 		 */
-		current->state = TASK_INTERRUPTIBLE;
+		set_current_state(TASK_INTERRUPTIBLE);
 		cosa_putstatus(cosa, SR_TX_INT_ENA);
 		schedule_timeout(30);
 		irq = probe_irq_off(irqs);
@@ -1564,8 +1564,7 @@ static int cosa_reset_and_read_id(struct
 	cosa_getdata8(cosa);
 	cosa_putstatus(cosa, SR_RST);
 #ifdef MODULE
-	current->state = TASK_INTERRUPTIBLE;
-	schedule_timeout(HZ/2);
+	msleep(500);
 #else
 	udelay(5*100000);
 #endif
@@ -1618,7 +1617,7 @@ static int get_wait_data(struct cosa_dat
 			return r;
 		}
 		/* sleep if not ready to read */
-		current->state = TASK_INTERRUPTIBLE;
+		set_current_state(TASK_INTERRUPTIBLE);
 		schedule_timeout(1);
 	}
 	printk(KERN_INFO "cosa: timeout in get_wait_data (status 0x%x)\n",

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

WARNING: multiple messages have this Message-ID (diff)
From: Nishanth Aravamudan <nacc@us.ibm.com>
To: kernel-janitors@lists.osdl.org
Cc: linux-net@vger.kernel.org, netdev@oss.sgi.com
Subject: [KJ] [PATCH 4/28] net/cosa: replace schedule_timeout() with msleep()
Date: Thu, 6 Jan 2005 15:41:34 -0800	[thread overview]
Message-ID: <20050106234134.GE3055@us.ibm.com> (raw)

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

Hi,

Description: Use msleep() instead of schedule_timeout() to guarantee the task
delays as expected. Also uses the set_current_state() macro instead of direct
assignment in a pair of spots. I am still concerned about those sleeps, as
TASK_INTERRUPTIBLE() is used without any checking for signals. Hence I used
msleep() for the longer delay. Perhaps the 30 jiffy delay has not been
updated for the larger HZ values and thus could be changed to msleep(300).

Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>


--- 2.6.10-v/drivers/net/wan/cosa.c	2004-12-24 13:33:49.000000000 -0800
+++ 2.6.10/drivers/net/wan/cosa.c	2005-01-04 14:57:49.000000000 -0800
@@ -543,7 +543,7 @@ static int cosa_probe(int base, int irq,
 		 * FIXME: When this code is not used as module, we should
 		 * probably call udelay() instead of the interruptible sleep.
 		 */
-		current->state = TASK_INTERRUPTIBLE;
+		set_current_state(TASK_INTERRUPTIBLE);
 		cosa_putstatus(cosa, SR_TX_INT_ENA);
 		schedule_timeout(30);
 		irq = probe_irq_off(irqs);
@@ -1564,8 +1564,7 @@ static int cosa_reset_and_read_id(struct
 	cosa_getdata8(cosa);
 	cosa_putstatus(cosa, SR_RST);
 #ifdef MODULE
-	current->state = TASK_INTERRUPTIBLE;
-	schedule_timeout(HZ/2);
+	msleep(500);
 #else
 	udelay(5*100000);
 #endif
@@ -1618,7 +1617,7 @@ static int get_wait_data(struct cosa_dat
 			return r;
 		}
 		/* sleep if not ready to read */
-		current->state = TASK_INTERRUPTIBLE;
+		set_current_state(TASK_INTERRUPTIBLE);
 		schedule_timeout(1);
 	}
 	printk(KERN_INFO "cosa: timeout in get_wait_data (status 0x%x)\n",

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

             reply	other threads:[~2005-01-06 23:41 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-01-06 23:41 Nishanth Aravamudan [this message]
2005-01-06 23:41 ` [KJ] [PATCH 4/28] net/cosa: replace schedule_timeout() with msleep() Nishanth Aravamudan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050106234134.GE3055@us.ibm.com \
    --to=nacc@us.ibm.com \
    --cc=kernel-janitors@lists.osdl.org \
    --cc=linux-net@vger.kernel.org \
    --cc=netdev@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.