All of lore.kernel.org
 help / color / mirror / Atom feed
* [Kernel-janitors] [PATCH] net/lanstreamer: replace
@ 2004-07-27 20:45 Nishanth Aravamudan
  2004-07-28 16:03 ` [Kernel-janitors] [PATCH] net/lanstreamer: Mark Hollomon
  0 siblings, 1 reply; 2+ messages in thread
From: Nishanth Aravamudan @ 2004-07-27 20:45 UTC (permalink / raw)
  To: kernel-janitors

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

I would appreciate any comments from the janitors list. This is one (of
many) cases where I made a decision about replacing

set_current_state(TASK_INTERRUPTIBLE);
schedule_timeout(some_time);

with

msleep(jiffies_to_msecs(some_time));

msleep() is not exactly the same as the previous code, but I only did
this replacement where I thought long delays were *desired*. If this is
not the case here, then just disregard this patch. 

Thanks,
Nish



Applys-to: 2.6.7

Description: Replace schedule_timeout() with msleep() to guarantee the
task delays for the desired time.

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


--- linux-vanilla/drivers/net/tokenring/lanstreamer.c	2004-06-16 05:20:04.000000000 +0000
+++ linux-dev/drivers/net/tokenring/lanstreamer.c	2004-07-12 21:44:46.000000000 +0000
@@ -450,8 +450,7 @@ static int streamer_reset(struct net_dev
 	writew(readw(streamer_mmio + BCTL) | BCTL_SOFTRESET, streamer_mmio + BCTL);
 	t = jiffies;
 	/* Hold soft reset bit for a while */
-	current->state = TASK_UNINTERRUPTIBLE;
-	schedule_timeout(HZ);
+	msleep(1000);
 	
 	writew(readw(streamer_mmio + BCTL) & ~BCTL_SOFTRESET,
 	       streamer_mmio + BCTL);
@@ -507,8 +506,7 @@ static int streamer_reset(struct net_dev
 	writew(SISR_MI, streamer_mmio + SISR_MASK_SUM);
 
 	while (!((readw(streamer_mmio + SISR)) & SISR_SRB_REPLY)) {
-		current->state = TASK_INTERRUPTIBLE;
-		schedule_timeout(HZ/10);
+		msleep(100);
 		if (jiffies - t > 40 * HZ) {
 			printk(KERN_ERR
 			       "IBM PCI tokenring card not responding\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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [Kernel-janitors] [PATCH] net/lanstreamer:
  2004-07-27 20:45 [Kernel-janitors] [PATCH] net/lanstreamer: replace Nishanth Aravamudan
@ 2004-07-28 16:03 ` Mark Hollomon
  0 siblings, 0 replies; 2+ messages in thread
From: Mark Hollomon @ 2004-07-28 16:03 UTC (permalink / raw)
  To: kernel-janitors

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

Nishanth Aravamudan wrote:
> I would appreciate any comments from the janitors list. This is one (of
> many) cases where I made a decision about replacing
> 
> set_current_state(TASK_INTERRUPTIBLE);
> schedule_timeout(some_time);
> 
> with
> 
> msleep(jiffies_to_msecs(some_time));
> 
> msleep() is not exactly the same as the previous code, but I only did
> this replacement where I thought long delays were *desired*. If this is
> not the case here, then just disregard this patch. 
> 
> Thanks,
> Nish
> 
> 
> 
> Applys-to: 2.6.7
> 
> Description: Replace schedule_timeout() with msleep() to guarantee the
> task delays for the desired time.
> 
> Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
> 
> 
> --- linux-vanilla/drivers/net/tokenring/lanstreamer.c	2004-06-16 05:20:04.000000000 +0000
> +++ linux-dev/drivers/net/tokenring/lanstreamer.c	2004-07-12 21:44:46.000000000 +0000
> @@ -450,8 +450,7 @@ static int streamer_reset(struct net_dev
>  	writew(readw(streamer_mmio + BCTL) | BCTL_SOFTRESET, streamer_mmio + BCTL);
>  	t = jiffies;
>  	/* Hold soft reset bit for a while */
> -	current->state = TASK_UNINTERRUPTIBLE;
> -	schedule_timeout(HZ);
> +	msleep(1000);
>  	
>  	writew(readw(streamer_mmio + BCTL) & ~BCTL_SOFTRESET,
>  	       streamer_mmio + BCTL);
> @@ -507,8 +506,7 @@ static int streamer_reset(struct net_dev
>  	writew(SISR_MI, streamer_mmio + SISR_MASK_SUM);
>  
>  	while (!((readw(streamer_mmio + SISR)) & SISR_SRB_REPLY)) {
> -		current->state = TASK_INTERRUPTIBLE;
> -		schedule_timeout(HZ/10);
> +		msleep(100);
>  		if (jiffies - t > 40 * HZ) {
>  			printk(KERN_ERR
>  			       "IBM PCI tokenring card not responding\n");

This second one looks iffy to me. But someone with a lot more knowledge 
needs to comment. The loop is looking for a hardware state change. The 
"real" timeout is the 40 seconds implied by the if statement.

-- 
--------------------------
Mark Hollomon

[-- 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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2004-07-28 16:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-07-27 20:45 [Kernel-janitors] [PATCH] net/lanstreamer: replace Nishanth Aravamudan
2004-07-28 16:03 ` [Kernel-janitors] [PATCH] net/lanstreamer: Mark Hollomon

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.