i2c/i2c-mpc: replace
PATCH 2/2 i2c/i2c-mpc: replace
Any comments would be appreciated.
Description: Properly orders set_current_state() and add_wait_queue(). Uses msleep_interruptible() in place of schedule_timeout() to guarantee the task delays as expected. Uses set_current_state() instead of direct assignment of current->state.
drivers/i2c/busses/i2c-mpc.c +3 -3
@@ -91,9 +91,9 @@ static int i2c_wait(struct mpc_i2c *i2c, x =readb (i2c->base +MPC_I2C_SR );writeb (0 , i2c->base +MPC_I2C_SR ); }else { +set_current_state (TASK_INTERRUPTIBLE );add_wait_queue (&i2c->queue, &wait);while (!(i2c->interrupt &CSR_MIF )) { -set_current_state (TASK_INTERRUPTIBLE );if (signal_pending (current)) {pr_debug ("I2C: Interrupted\n" ); result = -EINTR ;
@@ -104,9 +104,9 @@ static int i2c_wait(struct mpc_i2c *i2c, result = -EIO ;break ; } -schedule_timeout (timeout); +msleep_interruptible (jiffies_to_msecs (timeout)); } - current->state =TASK_RUNNING ; +set_current_state (TASK_RUNNING );remove_wait_queue (&i2c->queue, &wait); x = i2c->interrupt; i2c->interrupt =0 ;
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors
PATCH 2/2 i2c/i2c-mpc: replace
Previous patch won't compile. Any comments would (still) be appreciated.
Description: Properly orders set_current_state() and add_wait_queue(). Uses msleep_interruptible() in place of schedule_timeout() to guarantee the task delays as expected. Uses set_current_state() instead of direct assignment of current->state.
drivers/i2c/busses/i2c-mpc.c +4 -3
@@ -23,6 +23,7 @@#include <asm/ocp.h> #include <linux/i2c.h> #include <linux/interrupt.h> +#include <linux/delay.h> #define MPC_I2C_ADDR 0x00#define MPC_I2C_FDR 0x04
@@ -91,9 +92,9 @@ static int i2c_wait(struct mpc_i2c *i2c, x =readb (i2c->base +MPC_I2C_SR );writeb (0 , i2c->base +MPC_I2C_SR ); }else { +set_current_state (TASK_INTERRUPTIBLE );add_wait_queue (&i2c->queue, &wait);while (!(i2c->interrupt &CSR_MIF )) { -set_current_state (TASK_INTERRUPTIBLE );if (signal_pending (current)) {pr_debug ("I2C: Interrupted\n" ); result = -EINTR ;
@@ -104,9 +105,9 @@ static int i2c_wait(struct mpc_i2c *i2c, result = -EIO ;break ; } -schedule_timeout (timeout); +msleep_interruptible (jiffies_to_msecs (timeout)); } - current->state =TASK_RUNNING ; +set_current_state (TASK_RUNNING );remove_wait_queue (&i2c->queue, &wait); x = i2c->interrupt; i2c->interrupt =0 ;
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors
PATCH 2/2 ieee1394/sbp2: replace
In reply to Nishanth AravamudanAny comments would be appreciated.
Description: Uses msleep_interruptible() in place of schedule_timeout() to guarantee the task delays as expected.
drivers/ieee1394/sbp2.c +2 -4
@@ -357,8 +357,7 @@ static int sbp2util_down_timeout(atomic_int i;for (i = timeout; (i >0 &&atomic_read (done) ==0 ); i-=HZ /10 ) { -set_current_state (TASK_INTERRUPTIBLE ); -if (schedule_timeout (HZ /10 ))/* 100ms */ +if (msleep_interruptible (100 ))/* 100ms */ return (1 ); }return ((i >0 ) ?0 :1 );
@@ -903,8 +902,7 @@ alloc_fail:* connected to the sbp2 device being removed. That host would * have a certain amount of time to relogin before the sbp2 device * allows someone else to login instead. One second makes sense. */ -set_current_state (TASK_INTERRUPTIBLE ); -schedule_timeout (HZ ); +msleep_interruptible (1000 );/* * Login to the sbp-2 device
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors