Re: msleep_interruptible() in ethtool ioctl and keyboard input

From: Nish Aravamudan
Date: Fri Apr 29 2005 - 13:43:02 EST


On 4/29/05, Venkatesan, Ganesh <ganesh.venkatesan@xxxxxxxxx> wrote:

<snip>

> Please send me comments/ideas for further tests/questions for more data.
>
> Following is the logic that implements the blinking:

<snip>

> static int
> e1000_phys_id(struct net_device *netdev, uint32_t data)
> {
> struct e1000_adapter *adapter = netdev->priv;
>
> if(!data || data > (uint32_t)(MAX_SCHEDULE_TIMEOUT / HZ))
> data = (uint32_t)(MAX_SCHEDULE_TIMEOUT / HZ);
>
> if(!adapter->blink_timer.function) {
> init_timer(&adapter->blink_timer);
> adapter->blink_timer.function =
> e1000_led_blink_callback;
> adapter->blink_timer.data = (unsigned long) adapter;
> }
>
> e1000_setup_led(&adapter->hw);
> mod_timer(&adapter->blink_timer, jiffies);

You really want this timer to go off immediately?

Regardless....

> msleep_interruptible(data * 1000);

Does the same issue occur if you revert this change and make it

set_current_state(TASK_INTERRUPTIBLE);
schedule_timeout(data * HZ);

?

Thanks,
Nish
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/