Subject: Re: [PATCH net-next v2 RESEND] BNX2: fix a Null Pointer for stats_blk

From: David Miller <[email-masked]>
Date: Tue, 29 Sep 2015 21:10:11 -0700 (PDT)

From: Weidong Wang <[email-masked]>
Date: Tue, 29 Sep 2015 11:18:18 +0800

> @@ -839,11 +828,12 @@ bnx2_free_mem(struct bnx2 *bp)
>  }
> 
>  static int
> -bnx2_alloc_mem(struct bnx2 *bp)
> +bnx2_alloc_stats_blk(struct net_device *dev)
>  {
> -	int i, status_blk_size, err;
> +	int i, status_blk_size;
>  	struct bnx2_napi *bnapi;
>  	void *status_blk;
> +	struct bnx2 *bp = netdev_priv(dev);
> 
>  	/* Combine status and statistics blocks into one allocation. */
>  	status_blk_size = L1_CACHE_ALIGN(sizeof(struct status_block));

This function is not just allocating the stats block, it's allocating
a whole bunch of other things too.

Only allocate the stats block at probe time, not the NAPI et al. stuff
as well.  That can safely stay in the open/close paths.