i40e: fix erroneous WARN_ON
The driver was issuing a WARN_ON during ring size changes because the code was cloning the rx_ring struct but not zeroing out the pointers before allocating new memory. Zero out the pointers in the cloned copy before allocating new memory for them. In this case the code was correctly avoiding memory leaks but still triggering the warning. Change-ID: I186dd493948e9b7254ab0593d4aad8b68808918d Signed-off-by: Jesse Brandeburg <jesse.brandeburg@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
df71842325
commit
1e8efb42cf
|
@ -1176,6 +1176,11 @@ static int i40e_set_ringparam(struct net_device *netdev,
|
|||
/* clone ring and setup updated count */
|
||||
tx_rings[i] = *vsi->tx_rings[i];
|
||||
tx_rings[i].count = new_tx_count;
|
||||
/* the desc and bi pointers will be reallocated in the
|
||||
* setup call
|
||||
*/
|
||||
tx_rings[i].desc = NULL;
|
||||
tx_rings[i].rx_bi = NULL;
|
||||
err = i40e_setup_tx_descriptors(&tx_rings[i]);
|
||||
if (err) {
|
||||
while (i) {
|
||||
|
@ -1206,6 +1211,11 @@ static int i40e_set_ringparam(struct net_device *netdev,
|
|||
/* clone ring and setup updated count */
|
||||
rx_rings[i] = *vsi->rx_rings[i];
|
||||
rx_rings[i].count = new_rx_count;
|
||||
/* the desc and bi pointers will be reallocated in the
|
||||
* setup call
|
||||
*/
|
||||
rx_rings[i].desc = NULL;
|
||||
rx_rings[i].rx_bi = NULL;
|
||||
err = i40e_setup_rx_descriptors(&rx_rings[i]);
|
||||
if (err) {
|
||||
while (i) {
|
||||
|
|
Loading…
Reference in New Issue