diff --git a/drivers/block/aoe/aoechr.c b/drivers/block/aoe/aoechr.c index 3557f0d04b46d9270195bbb565a43933d01f87c2..acdd0adaf5da49a468159ce7ddb1a015fe11e5b3 100644 --- a/drivers/block/aoe/aoechr.c +++ b/drivers/block/aoe/aoechr.c @@ -96,13 +96,14 @@ revalidate(const char __user *str, size_t size) return -EINVAL; spin_lock_irqsave(&d->lock, flags); aoecmd_cleanslate(d); + aoecmd_cfg(major, minor); loop: skb = aoecmd_ata_id(d); spin_unlock_irqrestore(&d->lock, flags); /* try again if we are able to sleep a bit, * otherwise give up this revalidation */ - if (!skb && !msleep_interruptible(200)) { + if (!skb && !msleep_interruptible(250)) { spin_lock_irqsave(&d->lock, flags); goto loop; } @@ -113,7 +114,6 @@ revalidate(const char __user *str, size_t size) __skb_queue_tail(&queue, skb); aoenet_xmit(&queue); } - aoecmd_cfg(major, minor); return 0; }