mirror of
https://github.com/torvalds/linux.git
synced 2026-08-01 12:11:59 +02:00
i40e: warn on double free
Down was requesting queue disables, but then exited immediately without waiting for the queues to actually disable. This could allow any function called after i40evf_down to run immediately, including i40evf_up, and causes a memory leak. This issue has been fixed in a recent refactor of the reset code, but add a couple WARN_ONs in the slow path to help us recognize if we reintroduce this issue or if we missed any cases. Change-ID: I27b6b5c9a79c1892f0ba453129f116bc32647dd0 Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> 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>
This commit is contained in:
parent
7845548de7
commit
e908f81562
|
|
@ -923,6 +923,8 @@ int i40e_setup_tx_descriptors(struct i40e_ring *tx_ring)
|
|||
if (!dev)
|
||||
return -ENOMEM;
|
||||
|
||||
/* warn if we are about to overwrite the pointer */
|
||||
WARN_ON(tx_ring->tx_bi);
|
||||
bi_size = sizeof(struct i40e_tx_buffer) * tx_ring->count;
|
||||
tx_ring->tx_bi = kzalloc(bi_size, GFP_KERNEL);
|
||||
if (!tx_ring->tx_bi)
|
||||
|
|
@ -1083,6 +1085,8 @@ int i40e_setup_rx_descriptors(struct i40e_ring *rx_ring)
|
|||
struct device *dev = rx_ring->dev;
|
||||
int bi_size;
|
||||
|
||||
/* warn if we are about to overwrite the pointer */
|
||||
WARN_ON(rx_ring->rx_bi);
|
||||
bi_size = sizeof(struct i40e_rx_buffer) * rx_ring->count;
|
||||
rx_ring->rx_bi = kzalloc(bi_size, GFP_KERNEL);
|
||||
if (!rx_ring->rx_bi)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user