From: Domen Puncer Use wait_event_interruptible() instead of the deprecated interruptible_sleep_on(). The replacements were all straight-forward as every sleep was conditionally-looped. Patch is compile-tested (still warns about {save,restore}_flags(),cli()). Signed-off-by: Nishanth Aravamudan Signed-off-by: Domen Puncer Signed-off-by: Andrew Morton --- 25-akpm/drivers/char/istallion.c | 76 ++++++++++++++++----------------------- 1 files changed, 33 insertions(+), 43 deletions(-) diff -puN drivers/char/istallion.c~char-istallion-replace-interruptible_sleep_on-with-wait_event_interruptible drivers/char/istallion.c --- 25/drivers/char/istallion.c~char-istallion-replace-interruptible_sleep_on-with-wait_event_interruptible 2005-03-06 19:57:48.000000000 -0800 +++ 25-akpm/drivers/char/istallion.c 2005-03-06 19:57:48.000000000 -0800 @@ -41,6 +41,7 @@ #include #include #include +#include #include #include @@ -1068,11 +1069,10 @@ static int stli_open(struct tty_struct * tty->driver_data = portp; portp->refcount++; - while (test_bit(ST_INITIALIZING, &portp->state)) { - if (signal_pending(current)) - return(-ERESTARTSYS); - interruptible_sleep_on(&portp->raw_wait); - } + wait_event_interruptible(portp->raw_wait, + !test_bit(ST_INITIALIZING, &portp->state)); + if (signal_pending(current)) + return(-ERESTARTSYS); if ((portp->flags & ASYNC_INITIALIZED) == 0) { set_bit(ST_INITIALIZING, &portp->state); @@ -1275,12 +1275,11 @@ static int stli_rawopen(stlibrd_t *brdp, * order of opens and closes may not be preserved across shared * memory, so we must wait until it is complete. */ - while (test_bit(ST_CLOSING, &portp->state)) { - if (signal_pending(current)) { - restore_flags(flags); - return(-ERESTARTSYS); - } - interruptible_sleep_on(&portp->raw_wait); + wait_event_interruptible(portp->raw_wait, + !test_bit(ST_CLOSING, &portp->state)); + if (signal_pending(current)) { + restore_flags(flags); + return -ERESTARTSYS; } /* @@ -1309,13 +1308,10 @@ static int stli_rawopen(stlibrd_t *brdp, */ rc = 0; set_bit(ST_OPENING, &portp->state); - while (test_bit(ST_OPENING, &portp->state)) { - if (signal_pending(current)) { - rc = -ERESTARTSYS; - break; - } - interruptible_sleep_on(&portp->raw_wait); - } + wait_event_interruptible(portp->raw_wait, + !test_bit(ST_OPENING, &portp->state)); + if (signal_pending(current)) + rc = -ERESTARTSYS; restore_flags(flags); if ((rc == 0) && (portp->rc != 0)) @@ -1352,12 +1348,11 @@ static int stli_rawclose(stlibrd_t *brdp * occurs on this port. */ if (wait) { - while (test_bit(ST_CLOSING, &portp->state)) { - if (signal_pending(current)) { - restore_flags(flags); - return(-ERESTARTSYS); - } - interruptible_sleep_on(&portp->raw_wait); + wait_event_interruptible(portp->raw_wait, + !test_bit(ST_CLOSING, &portp->state)); + if (signal_pending(current)) { + restore_flags(flags); + return -ERESTARTSYS; } } @@ -1385,13 +1380,10 @@ static int stli_rawclose(stlibrd_t *brdp * to come back. */ rc = 0; - while (test_bit(ST_CLOSING, &portp->state)) { - if (signal_pending(current)) { - rc = -ERESTARTSYS; - break; - } - interruptible_sleep_on(&portp->raw_wait); - } + wait_event_interruptible(portp->raw_wait, + !test_bit(ST_CLOSING, &portp->state)); + if (signal_pending(current)) + rc = -ERESTARTSYS; restore_flags(flags); if ((rc == 0) && (portp->rc != 0)) @@ -1420,22 +1412,20 @@ static int stli_cmdwait(stlibrd_t *brdp, save_flags(flags); cli(); - while (test_bit(ST_CMDING, &portp->state)) { - if (signal_pending(current)) { - restore_flags(flags); - return(-ERESTARTSYS); - } - interruptible_sleep_on(&portp->raw_wait); + wait_event_interruptible(portp->raw_wait, + !test_bit(ST_CMDING, &portp->state)); + if (signal_pending(current)) { + restore_flags(flags); + return -ERESTARTSYS; } stli_sendcmd(brdp, portp, cmd, arg, size, copyback); - while (test_bit(ST_CMDING, &portp->state)) { - if (signal_pending(current)) { - restore_flags(flags); - return(-ERESTARTSYS); - } - interruptible_sleep_on(&portp->raw_wait); + wait_event_interruptible(portp->raw_wait, + !test_bit(ST_CMDING, &portp->state)); + if (signal_pending(current)) { + restore_flags(flags); + return -ERESTARTSYS; } restore_flags(flags); _