net/sb1000: replace nicedelay() with msleep_interruptible()
Subsystems (3)
PATCH 12/18 net/sb1000: replace nicedelay() with msleep_interruptible()
Any comments would be appreciated.
Description: Use msleep_interruptible() instead of nicedelay() to guarantee the task delays as expected. Remove the prototype and definition of nicedelay(). This is a very weird function, because it is called to sleep in terms of usecs, but always sleeps for 1 second, completely ignoring the parameter. I have gone ahead and followed suit, just sleeping for a second in all cases, but maybe someone with the hardware could tell me if perhaps the paramter *should* matter. Also remove a random "^L" character.
---
linux-2.6.10-rc1-max/drivers/net/sb1000.c | 15 +++------------ 1 files changed, 3 insertions(+), 12 deletions(-)
drivers/net/sb1000.c renamed from drivers/net/sb1000.c~msleep_interruptible-drivers_net_sb1000 +3 -12
@@ -90,7 +90,6 @@ static int sb1000_close(struct net_devic/* SB1000 hardware routines to be used during open/configuration phases */ -static inline void nicedelay (unsigned long usecs);static inline int card_wait_for_busy_clear (const int ioaddr[],const char * name); static inline int card_wait_for_ready(const int ioaddr[], const char* name,
@@ -247,20 +246,12 @@ static struct pnp_driver sb1000_driver = .remove = sb1000_remove_one, }; -/* * SB1000 hardware routines to be used during open/configuration phases */ const int TimeOutJiffies = (875 *HZ ) /100 ; -static inline void nicedelay (unsigned long usecs) -{ - current->state =TASK_INTERRUPTIBLE ; -schedule_timeout (HZ ); -return ; -} -/* Card Wait For Busy Clear (cannot be used during an interrupt) */ static inline int card_wait_for_busy_clear (const int ioaddr[],const char * name)
@@ -475,7 +466,7 @@ sb1000_reset(const int ioaddr[], const cudelay (1000 );outb (0x0 , port);inb (port); -nicedelay (60000 ); +msleep_interruptible (1000 );outb (0x4 , port);inb (port);udelay (1000 );
@@ -537,7 +528,7 @@ sb1000_activate(const int ioaddr[], consconst unsigned char Command0[6 ] = {0x80 ,0x11 ,0x00 ,0x00 ,0x00 ,0x00 };const unsigned char Command1[6 ] = {0x80 ,0x16 ,0x00 ,0x00 ,0x00 ,0x00 }; -nicedelay (50000 ); +msleep_interruptible (1000 );if ((status =card_send_command (ioaddr, name, Command0, st)))return status;if ((status =card_send_command (ioaddr, name, Command1, st)))
@@ -944,7 +935,7 @@ sb1000_open(struct net_device *dev)/* initialize sb1000 */ if ((status =sb1000_reset (ioaddr, name)))return status; -nicedelay (200000 ); +msleep_interruptible (1000 );if ((status =sb1000_check_CRC (ioaddr, name)))return status;
_
Quoted 10 lines · [email protected] wrote:
Any comments would be appreciated.
Description: Use
msleep_interruptible()instead ofnicedelay()to guarantee the task delays as expected. Remove the prototype and definition ofnicedelay(). This is a very weird function, because it is called to sleep in terms of usecs, but always sleeps for 1 second, completely ignoring the parameter. I have gone ahead and followed suit, just sleeping for a second in all cases, but maybe someone with the hardware could tell me if perhaps the paramter *should* matter. Also remove a random "^L" character.
use ssleep() here too
PATCH 1/1 net/sb1000: replace nicedelay() with ssleep_interruptible()
Quoted 12 lines · Jeff Garzik
Quoted 10 lines · [email protected] wrote:
Any comments would be appreciated.
Description: Use
msleep_interruptible()instead ofnicedelay()to guarantee the task delays as expected. Remove the prototype and definition ofnicedelay(). This is a very weird function, because it is called to sleep in terms of usecs, but always sleeps for 1 second, completely ignoring the parameter. I have gone ahead and followed suit, just sleeping for a second in all cases, but maybe someone with the hardware could tell me if perhaps the paramter *should* matter. Also remove a random "^L" character.
Quoted 1 line
use
ssleep()here too
Done, please fine patch below:
Description: Use ssleep_interruptible() instead of nicedelay() to guarantee the task delays as expected. Remove the prototype and definition of nicedelay(). This is a very weird function, because it is called to sleep in terms of usecs, but always sleeps for 1 second, completely ignoring the parameter. I have gone ahead and followed suit, just sleeping for a second in all cases, but maybe someone with the hardware could tell me if perhaps the paramter *should* matter. escription.
drivers/net/sb1000.c +3 -11
@@ -90,7 +90,6 @@ static int sb1000_close(struct net_devic/* SB1000 hardware routines to be used during open/configuration phases */ -static inline void nicedelay (unsigned long usecs);static inline int card_wait_for_busy_clear (const int ioaddr[],const char * name); static inline int card_wait_for_ready(const int ioaddr[], const char* name,
@@ -254,13 +253,6 @@ static struct pnp_driver sb1000_driver =const int TimeOutJiffies = (875 *HZ ) /100 ; -static inline void nicedelay (unsigned long usecs) -{ - current->state =TASK_INTERRUPTIBLE ; -schedule_timeout (HZ ); -return ; -} -/* Card Wait For Busy Clear (cannot be used during an interrupt) */ static inline int card_wait_for_busy_clear (const int ioaddr[],const char * name)
@@ -475,7 +467,7 @@ sb1000_reset(const int ioaddr[], const cudelay (1000 );outb (0x0 , port);inb (port); -nicedelay (60000 ); +ssleep_interruptible (1 );outb (0x4 , port);inb (port);udelay (1000 );
@@ -537,7 +529,7 @@ sb1000_activate(const int ioaddr[], consconst unsigned char Command0[6 ] = {0x80 ,0x11 ,0x00 ,0x00 ,0x00 ,0x00 };const unsigned char Command1[6 ] = {0x80 ,0x16 ,0x00 ,0x00 ,0x00 ,0x00 }; -nicedelay (50000 ); +ssleep_interruptible (1 );if ((status =card_send_command (ioaddr, name, Command0, st)))return status;if ((status =card_send_command (ioaddr, name, Command1, st)))
@@ -944,7 +936,7 @@ sb1000_open(struct net_device *dev)/* initialize sb1000 */ if ((status =sb1000_reset (ioaddr, name)))return status; -nicedelay (200000 ); +ssleep_interruptible (1 );if ((status =sb1000_check_CRC (ioaddr, name)))return status;
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors