]> Pileus Git - ~andy/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)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 12 Jul 2011 01:42:14 +0000 (18:42 -0700)
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>
drivers/net/igb/e1000_82575.c

index 0f563c8c5ffcfbeef9939dad90eb8cb1cf2a1405..493e331d7064ed7e04f9f426843ec7b071706ce5 100644 (file)
@@ -1735,6 +1735,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)