]> git.hungrycats.org Git - linux/commitdiff
igb: Fix lack of flush after register write and before delay
authorCarolyn Wyborny <carolyn.wyborny@intel.com>
Sat, 25 Jun 2011 13:18:12 +0000 (13:18 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 29 Aug 2011 21:33:04 +0000 (14:33 -0700)
commit 064b43304ed8ede8e13ff7b4338d09fd37bcffb1 upstream.

Register writes followed by a delay are required to have a flush
before the delay in order to commit the values to the register.  Without
the flush, the code following the delay may not function correctly.

Reported-by: Tong Ho <tong.ho@ericsson.com>
Reported-by: Guenter Roeck <guenter.roeck@ericsson.com>
Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/net/igb/e1000_82575.c

index c505b50d1fa32930164a250f82cd9d749bdaec98..c7e96c1a5f80d2a726ae993e6c45e3e66ed307af 100644 (file)
@@ -1527,6 +1527,7 @@ static s32 igb_reset_hw_82580(struct e1000_hw *hw)
                ctrl |= E1000_CTRL_RST;
 
        wr32(E1000_CTRL, ctrl);
+       wrfl();
 
        /* Add delay to insure DEV_RST has time to complete */
        if (global_device_reset)