ixgbe: Replace rmb in Tx cleanup with read_barrier_depends
authorAlexander Duyck <alexander.h.duyck@intel.com>
Tue, 8 Jan 2013 07:00:58 +0000 (07:00 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 5 Feb 2013 09:44:19 +0000 (01:44 -0800)
The rmb in the Tx cleanup path is a much stronger barrier than we really need.
All that is really needed is a read_barrier_depends since the location of the
EOP descriptor is dependent on the eop_desc value.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c

index 88500dd..ef9cb0a 100644 (file)
@@ -838,7 +838,7 @@ static bool ixgbe_clean_tx_irq(struct ixgbe_q_vector *q_vector,
                        break;
 
                /* prevent any other reads prior to eop_desc */
-               rmb();
+               read_barrier_depends();
 
                /* if DD is not set pending work has not been completed */
                if (!(eop_desc->wb.status & cpu_to_le32(IXGBE_TXD_STAT_DD)))