diff options
author | Mintz Yuval <yuvalmin@broadcom.com> | 2012-02-14 21:10:27 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-02-15 15:30:49 -0500 |
commit | afa13b4b94bc4b3247fa46dd8698c8dbfe1a615c (patch) | |
tree | 7b66cb56a7db3fcb8e0bd587a31cc17f8cff690d /drivers/net/ethernet | |
parent | 817a8aa8cfa1ebfb7bf27afb53ebb1ec3d49b564 (diff) |
bnx2x: allocate memory dynamically in ethtool self-test.
From: Merav Sicron <meravs@broadcom.com>
Current ethtool self tests usesa large buffer on stack. This patch replaces
that array by dynamically allocated memory
Signed-off-by: Merav Sicron <meravs@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c index 4cbd474ccecc..c18dc1d14a1d 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | |||
@@ -2016,14 +2016,22 @@ static int bnx2x_test_nvram(struct bnx2x *bp) | |||
2016 | { 0x708, 0x70 }, /* manuf_key_info */ | 2016 | { 0x708, 0x70 }, /* manuf_key_info */ |
2017 | { 0, 0 } | 2017 | { 0, 0 } |
2018 | }; | 2018 | }; |
2019 | __be32 buf[0x350 / 4]; | 2019 | __be32 *buf; |
2020 | u8 *data = (u8 *)buf; | 2020 | u8 *data; |
2021 | int i, rc; | 2021 | int i, rc; |
2022 | u32 magic, crc; | 2022 | u32 magic, crc; |
2023 | 2023 | ||
2024 | if (BP_NOMCP(bp)) | 2024 | if (BP_NOMCP(bp)) |
2025 | return 0; | 2025 | return 0; |
2026 | 2026 | ||
2027 | buf = kmalloc(0x350, GFP_KERNEL); | ||
2028 | if (!buf) { | ||
2029 | DP(NETIF_MSG_PROBE, "kmalloc failed\n"); | ||
2030 | rc = -ENOMEM; | ||
2031 | goto test_nvram_exit; | ||
2032 | } | ||
2033 | data = (u8 *)buf; | ||
2034 | |||
2027 | rc = bnx2x_nvram_read(bp, 0, data, 4); | 2035 | rc = bnx2x_nvram_read(bp, 0, data, 4); |
2028 | if (rc) { | 2036 | if (rc) { |
2029 | DP(NETIF_MSG_PROBE, "magic value read (rc %d)\n", rc); | 2037 | DP(NETIF_MSG_PROBE, "magic value read (rc %d)\n", rc); |
@@ -2057,6 +2065,7 @@ static int bnx2x_test_nvram(struct bnx2x *bp) | |||
2057 | } | 2065 | } |
2058 | 2066 | ||
2059 | test_nvram_exit: | 2067 | test_nvram_exit: |
2068 | kfree(buf); | ||
2060 | return rc; | 2069 | return rc; |
2061 | } | 2070 | } |
2062 | 2071 | ||