Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a232bfbe authored by Hiral Shah's avatar Hiral Shah Committed by Christoph Hellwig
Browse files

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: default avatarHiral Shah <hishah@cisco.com>
Signed-off-by: default avatarSesidhar Baddela <sebaddel@cisco.com>
Signed-off-by: default avatarAnil Chintalapati <achintal@cisco.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent 2043e1fd
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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: "

+11 −2
Original line number Diff line number Diff line
@@ -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;
}