From: Weidong Wang <wangweido...@huawei.com> 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. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/