i40evf: null out ring pointers on free
authorMitch Williams <mitch.a.williams@intel.com>
Wed, 9 Dec 2015 23:50:30 +0000 (15:50 -0800)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 4 Feb 2016 04:37:06 +0000 (20:37 -0800)
Since we check these ring pointers to make sure we don't double-allocate
or double-free the rings, we had better null them out after we free
them. In very rare cases this can cause a panic if the driver is removed
during reset recovery.

Change-ID: Ib06eb4910a3058275c8f7ec5ef7f45baa4674f96
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40evf/i40evf_main.c

index d1c4335114fc625db2fb78bb8c504fbb5069c71a..81d958422ccf4a51f5556389e5832ac4b8a3ff23 100644 (file)
@@ -1122,7 +1122,9 @@ static void i40evf_free_queues(struct i40evf_adapter *adapter)
        if (!adapter->vsi_res)
                return;
        kfree(adapter->tx_rings);
+       adapter->tx_rings = NULL;
        kfree(adapter->rx_rings);
+       adapter->rx_rings = NULL;
 }
 
 /**