Any comments would be appreciated. This is a re-push of a patch I submitted 20 July which hasn't been merged as of 2.6.9-rc1-mm5/2.6.9-rc2. Description: msleep_interruptible() is used instead of pf_sleep() to guarantee the task delays as expected. The defintion of pf_sleep() is also removed. Signed-off-by: Nishanth Aravamudan Signed-off-by: Domen Puncer --- kj-domen/drivers/block/paride/pf.c | 10 ++-------- 1 files changed, 2 insertions(+), 8 deletions(-) diff -puN drivers/block/paride/pf.c~msleep_interruptible-drivers_block_pf drivers/block/paride/pf.c --- kj/drivers/block/paride/pf.c~msleep_interruptible-drivers_block_pf 2004-12-25 01:34:41.000000000 +0100 +++ kj-domen/drivers/block/paride/pf.c 2004-12-25 01:34:41.000000000 +0100 @@ -526,12 +526,6 @@ static void pf_eject(struct pf_unit *pf) #define PF_RESET_TMO 30 /* in tenths of a second */ -static void pf_sleep(int cs) -{ - current->state = TASK_INTERRUPTIBLE; - schedule_timeout(cs); -} - /* the ATAPI standard actually specifies the contents of all 7 registers after a reset, but the specification is ambiguous concerning the last two bytes, and different drives interpret the standard differently. @@ -546,11 +540,11 @@ static int pf_reset(struct pf_unit *pf) write_reg(pf, 6, 0xa0+0x10*pf->drive); write_reg(pf, 7, 8); - pf_sleep(20 * HZ / 1000); + msleep_interruptible(20); k = 0; while ((k++ < PF_RESET_TMO) && (status_reg(pf) & STAT_BUSY)) - pf_sleep(HZ / 10); + msleep_interruptible(100); flg = 1; for (i = 0; i < 5; i++) _