netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
To: davem@davemloft.net
Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>,
	netdev@vger.kernel.org, nhorman@redhat.com, sassmann@redhat.com,
	jogreene@redhat.com, Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Subject: [net-next 01/16] i40e: fix erroneous WARN_ON
Date: Thu,  8 Oct 2015 18:32:39 -0700	[thread overview]
Message-ID: <1444354374-24351-2-git-send-email-jeffrey.t.kirsher@intel.com> (raw)
In-Reply-To: <1444354374-24351-1-git-send-email-jeffrey.t.kirsher@intel.com>

From: Jesse Brandeburg <jesse.brandeburg@intel.com>

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>
---
 drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index ffa9431..ef471fc 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -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) {
-- 
2.4.3

  reply	other threads:[~2015-10-09  1:32 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-09  1:32 [net-next 00/16][pull request] Intel Wired LAN Driver Updates 2015-10-08 Jeff Kirsher
2015-10-09  1:32 ` Jeff Kirsher [this message]
2015-10-09  1:32 ` [net-next 02/16] i40e: inline interrupt enable Jeff Kirsher
2015-10-09  1:32 ` [net-next 03/16] i40e: add more verbose error messages Jeff Kirsher
2015-10-09  1:32 ` [net-next 04/16] i40e: Add parsing for CEE DCBX TLVs Jeff Kirsher
2015-10-09  1:32 ` [net-next 05/16] i40e/i40evf: Store CEE DCBX DesiredCfg and RemoteCfg Jeff Kirsher
2015-10-09  1:32 ` [net-next 06/16] i40e: Fix for extra Flow Director filter in table after error Jeff Kirsher
2015-10-09  1:32 ` [net-next 07/16] i40e: Fix multiple link up messages Jeff Kirsher
2015-10-09  1:32 ` [net-next 08/16] i40e: add switch for link polling Jeff Kirsher
2015-10-09  1:32 ` [net-next 09/16] i40e/i40evf: Explicitly assign enum index for VSI type Jeff Kirsher
2015-10-09  1:32 ` [net-next 10/16] i40e: Support FW CEE DCB UP to TC map nibble swap Jeff Kirsher
2015-10-09  1:32 ` [net-next 11/16] i40evf: detect reset more reliably Jeff Kirsher
2015-10-09  1:32 ` [net-next 12/16] i40e/i40evf: clean up some code Jeff Kirsher
2015-10-09  1:32 ` [net-next 13/16] i40e: refactor code to remove indent Jeff Kirsher
2015-10-09  1:32 ` [net-next 14/16] i40evf: use capabilities flags properly Jeff Kirsher
2015-10-09  1:32 ` [net-next 15/16] i40e/i40evf: pass QOS handle to VF Jeff Kirsher
2015-10-09  1:32 ` [net-next 16/16] i40e: print neato new features Jeff Kirsher
2015-10-09 14:23 ` [net-next 00/16][pull request] Intel Wired LAN Driver Updates 2015-10-08 David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1444354374-24351-2-git-send-email-jeffrey.t.kirsher@intel.com \
    --to=jeffrey.t.kirsher@intel.com \
    --cc=davem@davemloft.net \
    --cc=jesse.brandeburg@intel.com \
    --cc=jogreene@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=nhorman@redhat.com \
    --cc=sassmann@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).