| From 9e6c3b63399dd424d33a34e08b77f2cab0b84cdc Mon Sep 17 00:00:00 2001 |
| From: David Ertman <davidx.m.ertman@intel.com> |
| Date: Sat, 14 Dec 2013 07:18:18 +0000 |
| Subject: e1000e: fix compiler warnings |
| |
| From: David Ertman <davidx.m.ertman@intel.com> |
| |
| commit 9e6c3b63399dd424d33a34e08b77f2cab0b84cdc upstream. |
| |
| This patch is to fix a compiler warning of __bad_udelay due to a value |
| of >999 being passed as a parameter to udelay() in the function |
| e1000e_phy_has_link_generic(). This affects the gcc compiler when |
| it is given a flag of -O3 and the icc compiler. |
| |
| This patch is also making the change from mdelay() to msleep() in the |
| same function, since it was determined though code inspection that this |
| function is never called in atomic context. |
| |
| Signed-off-by: David Ertman <davidx.m.ertman@intel.com> |
| Acked-by: Bruce Allan <bruce.w.allan@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@linuxfoundation.org> |
| |
| --- |
| drivers/net/ethernet/intel/e1000e/phy.c | 10 +++++++--- |
| 1 file changed, 7 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/net/ethernet/intel/e1000e/phy.c |
| +++ b/drivers/net/ethernet/intel/e1000e/phy.c |
| @@ -1757,19 +1757,23 @@ s32 e1000e_phy_has_link_generic(struct e |
| * it across the board. |
| */ |
| ret_val = e1e_rphy(hw, MII_BMSR, &phy_status); |
| - if (ret_val) |
| + if (ret_val) { |
| /* If the first read fails, another entity may have |
| * ownership of the resources, wait and try again to |
| * see if they have relinquished the resources yet. |
| */ |
| - udelay(usec_interval); |
| + if (usec_interval >= 1000) |
| + msleep(usec_interval / 1000); |
| + else |
| + udelay(usec_interval); |
| + } |
| ret_val = e1e_rphy(hw, MII_BMSR, &phy_status); |
| if (ret_val) |
| break; |
| if (phy_status & BMSR_LSTATUS) |
| break; |
| if (usec_interval >= 1000) |
| - mdelay(usec_interval / 1000); |
| + msleep(usec_interval / 1000); |
| else |
| udelay(usec_interval); |
| } |