diff options
Diffstat (limited to 'drivers/net/bnx2.c')
-rw-r--r-- | drivers/net/bnx2.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c index d3f739a295df..bb403887b549 100644 --- a/drivers/net/bnx2.c +++ b/drivers/net/bnx2.c | |||
@@ -7773,15 +7773,17 @@ bnx2_read_vpd_fw_ver(struct bnx2 *bp) | |||
7773 | unsigned int block_end; | 7773 | unsigned int block_end; |
7774 | 7774 | ||
7775 | if (val == 0x82 || val == 0x91) { | 7775 | if (val == 0x82 || val == 0x91) { |
7776 | i = (i + 3 + (data[i + 1] + (data[i + 2] << 8))); | 7776 | i += PCI_VPD_LRDT_TAG_SIZE + |
7777 | pci_vpd_lrdt_size(&data[i]); | ||
7777 | continue; | 7778 | continue; |
7778 | } | 7779 | } |
7779 | 7780 | ||
7780 | if (val != 0x90) | 7781 | if (val != 0x90) |
7781 | goto vpd_done; | 7782 | goto vpd_done; |
7782 | 7783 | ||
7783 | block_end = (i + 3 + (data[i + 1] + (data[i + 2] << 8))); | 7784 | block_end = (i + PCI_VPD_LRDT_TAG_SIZE + |
7784 | i += 3; | 7785 | pci_vpd_lrdt_size(&data[i])); |
7786 | i += PCI_VPD_LRDT_TAG_SIZE; | ||
7785 | 7787 | ||
7786 | if (block_end > BNX2_VPD_LEN) | 7788 | if (block_end > BNX2_VPD_LEN) |
7787 | goto vpd_done; | 7789 | goto vpd_done; |