提交 a232bfbe 编写于 作者: H Hiral Shah 提交者: Christoph Hellwig

Fnic: Not probing all the vNICS via fnic_probe on boot

In fnic_dev_wait, Wait for finish to complete at least three times in two
seconds while loop before returning -ETIMEDOUT as sometime
schedule_timeout_uninterruptible takes more than two seconds to wake up.

- Increment fnic version from 1.6.0.11 to 1.6.0.12
Signed-off-by: NHiral Shah <hishah@cisco.com>
Signed-off-by: NSesidhar Baddela <sebaddel@cisco.com>
Signed-off-by: NAnil Chintalapati <achintal@cisco.com>
Signed-off-by: NChristoph Hellwig <hch@lst.de>
上级 2043e1fd
......@@ -39,7 +39,7 @@
#define DRV_NAME "fnic"
#define DRV_DESCRIPTION "Cisco FCoE HBA Driver"
#define DRV_VERSION "1.6.0.11"
#define DRV_VERSION "1.6.0.12"
#define PFX DRV_NAME ": "
#define DFX DRV_NAME "%d: "
......
......@@ -437,21 +437,30 @@ static int fnic_dev_wait(struct vnic_dev *vdev,
unsigned long time;
int done;
int err;
int count;
count = 0;
err = start(vdev, arg);
if (err)
return err;
/* Wait for func to complete...2 seconds max */
/* Wait for func to complete.
* Sometime schedule_timeout_uninterruptible take long time
* to wake up so we do not retry as we are only waiting for
* 2 seconds in while loop. By adding count, we make sure
* we try atleast three times before returning -ETIMEDOUT
*/
time = jiffies + (HZ * 2);
do {
err = finished(vdev, &done);
count++;
if (err)
return err;
if (done)
return 0;
schedule_timeout_uninterruptible(HZ / 10);
} while (time_after(time, jiffies));
} while (time_after(time, jiffies) || (count < 3));
return -ETIMEDOUT;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册