svn commit: r359057 - head/sys/dev/pci
Navdeep Parhar
np at FreeBSD.org
Wed Mar 18 01:09:42 UTC 2020
Author: np
Date: Wed Mar 18 01:09:40 2020
New Revision: 359057
URL: https://svnweb.freebsd.org/changeset/base/359057
Log:
Remove spurious warning about invalid VPD data.
The warning used to be displayed for valid VPDs about 512B or above in
size. Fix the size check and add a break while here so that the routine
stops if if detects any problem.
Tested with "pciconf -lV"
Reviewed by: kib@, jhb@
MFC after: 1 week
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D23679
Modified:
head/sys/dev/pci/pci.c
Modified: head/sys/dev/pci/pci.c
==============================================================================
--- head/sys/dev/pci/pci.c Tue Mar 17 23:58:58 2020 (r359056)
+++ head/sys/dev/pci/pci.c Wed Mar 18 01:09:40 2020 (r359057)
@@ -1102,16 +1102,16 @@ pci_read_vpd(device_t pcib, pcicfgregs *cfg)
break;
}
remain |= byte2 << 8;
- if (remain > (0x7f*4 - vrs.off)) {
- state = -1;
- pci_printf(cfg,
- "invalid VPD data, remain %#x\n",
- remain);
- }
name = byte & 0x7f;
} else {
remain = byte & 0x7;
name = (byte >> 3) & 0xf;
+ }
+ if (vrs.off + remain - vrs.bytesinval > 0x8000) {
+ pci_printf(cfg,
+ "VPD data overflow, remain %#x\n", remain);
+ state = -1;
+ break;
}
switch (name) {
case 0x2: /* String */
More information about the svn-src-head
mailing list