ixgbe: Make certain to initialize the fdir_perfect_lock in all cases
authorAlexander Duyck <alexander.h.duyck@intel.com>
Thu, 2 Jun 2011 04:28:39 +0000 (04:28 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 12 Jul 2011 01:43:20 +0000 (18:43 -0700)
This fix makes it so that the fdir_perfect_lock is initialized in all
cases.  This is necessary as the fdir_filter_exit routine will always
attempt to take the lock before inspecting the filter table.

Reported-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ixgbe/ixgbe_main.c

index fa671ae0ab694bac347f975956a531291f3aa173..de307965dfeea1f6dd768d2a31e79985c2ba0526 100644 (file)
@@ -5155,8 +5155,6 @@ static int __devinit ixgbe_sw_init(struct ixgbe_adapter *adapter)
                adapter->flags2 |= IXGBE_FLAG2_RSC_ENABLED;
                if (hw->device_id == IXGBE_DEV_ID_82599_T3_LOM)
                        adapter->flags2 |= IXGBE_FLAG2_TEMP_SENSOR_CAPABLE;
-               /* n-tuple support exists, always init our spinlock */
-               spin_lock_init(&adapter->fdir_perfect_lock);
                /* Flow Director hash filters enabled */
                adapter->flags |= IXGBE_FLAG_FDIR_HASH_CAPABLE;
                adapter->atr_sample_rate = 20;
@@ -5177,6 +5175,9 @@ static int __devinit ixgbe_sw_init(struct ixgbe_adapter *adapter)
                break;
        }
 
+       /* n-tuple support exists, always init our spinlock */
+       spin_lock_init(&adapter->fdir_perfect_lock);
+
 #ifdef CONFIG_IXGBE_DCB
        /* Configure DCB traffic classes */
        for (j = 0; j < MAX_TRAFFIC_CLASS; j++) {