PCI: output FW warning in pci_read/write_vpd
pci_read/write_vpd() can fail due to a timeout. Usually the command times out because of firmware issues (incorrect vpd length, etc.) on the PCI card. Currently, the timeout occurs silently. Output a message to the user indicating that they should check with their vendor for new firmware. Reviewed-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Prarit Bhargava <prarit@redhat.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
This commit is contained in:
committed by
Jesse Barnes
parent
ee6583f6e8
commit
5030718ee4
@@ -220,8 +220,13 @@ static int pci_vpd_pci22_wait(struct pci_dev *dev)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (time_after(jiffies, timeout))
|
if (time_after(jiffies, timeout)) {
|
||||||
|
dev_printk(KERN_DEBUG, &dev->dev,
|
||||||
|
"vpd r/w failed. This is likely a firmware "
|
||||||
|
"bug on this device. Contact the card "
|
||||||
|
"vendor for a firmware update.");
|
||||||
return -ETIMEDOUT;
|
return -ETIMEDOUT;
|
||||||
|
}
|
||||||
if (fatal_signal_pending(current))
|
if (fatal_signal_pending(current))
|
||||||
return -EINTR;
|
return -EINTR;
|
||||||
if (!cond_resched())
|
if (!cond_resched())
|
||||||
|
Reference in New Issue
Block a user