X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fchar%2Fftape%2Flowlevel%2Ffdc-io.c;h=2165324456520a5f786716154b63491519aaebb7;hb=16c70f8c1b54b61c3b951b6fb220df250fe09b32;hp=f589e7e98d363132f19845427cde798e025a3a50;hpb=6a77f38946aaee1cd85eeec6cf4229b204c15071;p=linux-2.6.git diff --git a/drivers/char/ftape/lowlevel/fdc-io.c b/drivers/char/ftape/lowlevel/fdc-io.c index f589e7e98..216532445 100644 --- a/drivers/char/ftape/lowlevel/fdc-io.c +++ b/drivers/char/ftape/lowlevel/fdc-io.c @@ -26,7 +26,6 @@ * Linux. */ -#include /* for CONFIG_FT_* */ #include #include #include @@ -387,9 +386,8 @@ int fdc_interrupt_wait(unsigned int time) set_current_state(TASK_INTERRUPTIBLE); add_wait_queue(&ftape_wait_intr, &wait); - while (!ft_interrupt_seen && (current->state == TASK_INTERRUPTIBLE)) { - timeout = schedule_timeout(timeout); - } + while (!ft_interrupt_seen && timeout) + timeout = schedule_timeout_interruptible(timeout); spin_lock_irq(¤t->sighand->siglock); current->blocked = old_sigmask; @@ -608,7 +606,7 @@ void fdc_reset(void) fdc_mode = fdc_idle; - /* maybe the cli()/sti() pair is not necessary, BUT: + /* maybe the spin_lock_irq* pair is not necessary, BUT: * the following line MUST be here. Otherwise fdc_interrupt_wait() * won't wait. Note that fdc_reset() is called from * ftape_dumb_stop() when the fdc is busy transferring data. In this @@ -1269,7 +1267,7 @@ static int fdc_grab_irq_and_dma(void) /* Get fast interrupt handler. */ if (request_irq(fdc.irq, ftape_interrupt, - SA_INTERRUPT, "ft", ftape_id)) { + IRQF_DISABLED, "ft", ftape_id)) { TRACE_ABORT(-EIO, ft_t_bug, "Unable to grab IRQ%d for ftape driver", fdc.irq);