Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 256531
b: refs/heads/master
c: 535a490
h: refs/heads/master
i:
  256529: 6dae2f1
  256527: b7799de
v: v3
  • Loading branch information
Matt Carlson authored and David S. Miller committed Jul 21, 2011
1 parent 8884633 commit c66d1ce
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3aa1cdf87c0b3f2345e75c474acc32ebbf0a4724
refs/heads/master: 535a490eaddab484c53717fe2feeba800c9cdda2
25 changes: 13 additions & 12 deletions trunk/drivers/net/tg3.c
Original file line number Diff line number Diff line change
Expand Up @@ -10573,7 +10573,7 @@ static void tg3_get_ethtool_stats(struct net_device *dev,
memcpy(tmp_stats, tg3_get_estats(tp), sizeof(tp->estats));
}

static __be32 * tg3_vpd_readblock(struct tg3 *tp)
static __be32 *tg3_vpd_readblock(struct tg3 *tp, u32 *vpdlen)
{
int i;
__be32 *buf;
Expand Down Expand Up @@ -10640,6 +10640,8 @@ static __be32 * tg3_vpd_readblock(struct tg3 *tp)
goto error;
}

*vpdlen = len;

return buf;

error:
Expand All @@ -10659,7 +10661,7 @@ static __be32 * tg3_vpd_readblock(struct tg3 *tp)

static int tg3_test_nvram(struct tg3 *tp)
{
u32 csum, magic;
u32 csum, magic, len;
__be32 *buf;
int i, j, k, err = 0, size;

Expand Down Expand Up @@ -10800,18 +10802,17 @@ static int tg3_test_nvram(struct tg3 *tp)

kfree(buf);

buf = tg3_vpd_readblock(tp);
buf = tg3_vpd_readblock(tp, &len);
if (!buf)
return -ENOMEM;

i = pci_vpd_find_tag((u8 *)buf, 0, TG3_NVM_VPD_LEN,
PCI_VPD_LRDT_RO_DATA);
i = pci_vpd_find_tag((u8 *)buf, 0, len, PCI_VPD_LRDT_RO_DATA);
if (i > 0) {
j = pci_vpd_lrdt_size(&((u8 *)buf)[i]);
if (j < 0)
goto out;

if (i + PCI_VPD_LRDT_TAG_SIZE + j > TG3_NVM_VPD_LEN)
if (i + PCI_VPD_LRDT_TAG_SIZE + j > len)
goto out;

i += PCI_VPD_LRDT_TAG_SIZE;
Expand Down Expand Up @@ -13209,22 +13210,22 @@ static void __devinit tg3_read_vpd(struct tg3 *tp)
{
u8 *vpd_data;
unsigned int block_end, rosize, len;
u32 vpdlen;
int j, i = 0;

vpd_data = (u8 *)tg3_vpd_readblock(tp);
vpd_data = (u8 *)tg3_vpd_readblock(tp, &vpdlen);
if (!vpd_data)
goto out_no_vpd;

i = pci_vpd_find_tag(vpd_data, 0, TG3_NVM_VPD_LEN,
PCI_VPD_LRDT_RO_DATA);
i = pci_vpd_find_tag(vpd_data, 0, vpdlen, PCI_VPD_LRDT_RO_DATA);
if (i < 0)
goto out_not_found;

rosize = pci_vpd_lrdt_size(&vpd_data[i]);
block_end = i + PCI_VPD_LRDT_TAG_SIZE + rosize;
i += PCI_VPD_LRDT_TAG_SIZE;

if (block_end > TG3_NVM_VPD_LEN)
if (block_end > vpdlen)
goto out_not_found;

j = pci_vpd_find_info_keyword(vpd_data, i, rosize,
Expand All @@ -13249,7 +13250,7 @@ static void __devinit tg3_read_vpd(struct tg3 *tp)
goto partno;

memcpy(tp->fw_ver, &vpd_data[j], len);
strncat(tp->fw_ver, " bc ", TG3_NVM_VPD_LEN - len - 1);
strncat(tp->fw_ver, " bc ", vpdlen - len - 1);
}

partno:
Expand All @@ -13262,7 +13263,7 @@ static void __devinit tg3_read_vpd(struct tg3 *tp)

i += PCI_VPD_INFO_FLD_HDR_SIZE;
if (len > TG3_BPN_SIZE ||
(len + i) > TG3_NVM_VPD_LEN)
(len + i) > vpdlen)
goto out_not_found;

memcpy(tp->board_part_number, &vpd_data[i], len);
Expand Down

0 comments on commit c66d1ce

Please sign in to comment.