diff options
author | wangweidong <wangweidong1@huawei.com> | 2015-10-08 18:03:47 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-10-11 05:06:21 -0700 |
commit | 8fae307c8fe9789ff1f4161dcb2db0d689069448 (patch) | |
tree | 96e0afa810063f8fc6e8ac0d4e83ec2985b01aea /drivers/net/ethernet/broadcom/bnx2.h | |
parent | e446f9dfe17bbaa76a1fe22912636f38be1e1af8 (diff) | |
download | talos-op-linux-8fae307c8fe9789ff1f4161dcb2db0d689069448.tar.gz talos-op-linux-8fae307c8fe9789ff1f4161dcb2db0d689069448.zip |
BNX2: fix a Null Pointer for stats_blk
we have two processes to do:
P1#: ifconfig eth0 down; which will call bnx2_close, then will
, and set Null to stats_blk
P2#: ifconfig eth0; which will call bnx2_get_stats64, it will
use stats_blk.
In one case:
--P1#-- --P2#--
stats_blk(no null)
bnx2_free_mem
->bp->stats_blk = NULL
GET_64BIT_NET_STATS
then it will cause 'NULL Pointer' Problem.
it is as well with 'ethtool -S ethx'.
Allocate the statistics block at probe time so that this problem is
impossible
Signed-off-by: Wang Weidong <wangweidong1@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnx2.h')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2.h b/drivers/net/ethernet/broadcom/bnx2.h index f92f76c44756..380234d72b95 100644 --- a/drivers/net/ethernet/broadcom/bnx2.h +++ b/drivers/net/ethernet/broadcom/bnx2.h @@ -6928,6 +6928,7 @@ struct bnx2 { dma_addr_t status_blk_mapping; + void *status_blk; struct statistics_block *stats_blk; struct statistics_block *temp_stats_blk; dma_addr_t stats_blk_mapping; |