replace deprecated interruptible_sleep_on() with wait_event_interruptible()