ixgbe: Fix a set_num_queues() bug that can result in num_(r|t)x_queues = 0
authorPeter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Sat, 7 Feb 2009 10:16:59 +0000 (02:16 -0800)
committerDavid S. Miller <davem@davemloft.net>
Sat, 7 Feb 2009 10:16:59 +0000 (02:16 -0800)
Now that our set_num_queues() routines for each feature are re-entrant, and
can be called at any point, they shouldn't zero out the feature's indices
or mask bits.  Subsequent calls into those routines for those features can
result in zero Rx and Tx queues being assigned, causing a panic later in
driver reinitialization.

Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ixgbe/ixgbe_main.c

index 8e270b6..a3572d1 100644 (file)
@@ -2350,8 +2350,6 @@ static inline bool ixgbe_set_dcb_queues(struct ixgbe_adapter *adapter)
                                      adapter->ring_feature[RING_F_DCB].indices;
                ret = true;
        } else {
-               adapter->ring_feature[RING_F_DCB].mask = 0;
-               adapter->ring_feature[RING_F_DCB].indices = 0;
                ret = false;
        }
 
@@ -2371,8 +2369,6 @@ static inline bool ixgbe_set_rss_queues(struct ixgbe_adapter *adapter)
                                      adapter->ring_feature[RING_F_RSS].indices;
                ret = true;
        } else {
-               adapter->ring_feature[RING_F_RSS].mask = 0;
-               adapter->ring_feature[RING_F_RSS].indices = 0;
                ret = false;
        }