On 64 bit platform MAX_SCHEDULE_TIMEOUT is 64 bits, so sparse throws
a warning on the check in the blink code. Just recode to a simpler version.

Signed-off-by: Stephen Hemminger <[EMAIL PROTECTED]>

--- pro-2.6.orig/drivers/net/sky2.c
+++ pro-2.6/drivers/net/sky2.c
@@ -2606,15 +2606,9 @@ static int sky2_phys_id(struct net_devic
        struct sky2_hw *hw = sky2->hw;
        unsigned port = sky2->port;
        u16 ledctrl, ledover = 0;
-       long ms;
-       int interrupted;
+       unsigned i;
        int onoff = 1;
 
-       if (!data || data > (u32) (MAX_SCHEDULE_TIMEOUT / HZ))
-               ms = jiffies_to_msecs(MAX_SCHEDULE_TIMEOUT);
-       else
-               ms = data * 1000;
-
        /* save initial values */
        down(&sky2->phy_sema);
        if (hw->chip_id == CHIP_ID_YUKON_XL) {
@@ -2626,20 +2620,20 @@ static int sky2_phys_id(struct net_devic
                ledctrl = gm_phy_read(hw, port, PHY_MARV_LED_CTRL);
                ledover = gm_phy_read(hw, port, PHY_MARV_LED_OVER);
        }
+       up(&sky2->phy_sema);
 
-       interrupted = 0;
-       while (!interrupted && ms > 0) {
+       for (i = 0; i < data * 2; i++) {
+               down(&sky2->phy_sema);
                sky2_led(hw, port, onoff);
-               onoff = !onoff;
-
                up(&sky2->phy_sema);
-               interrupted = msleep_interruptible(250);
-               down(&sky2->phy_sema);
+               onoff = !onoff;
 
-               ms -= 250;
+               if (msleep_interruptible(500))
+                       break;
        }
 
        /* resume regularly scheduled programming */
+       down(&sky2->phy_sema);
        if (hw->chip_id == CHIP_ID_YUKON_XL) {
                u16 pg = gm_phy_read(hw, port, PHY_MARV_EXT_ADR);
                gm_phy_write(hw, port, PHY_MARV_EXT_ADR, 3);

--
Stephen Hemminger <[EMAIL PROTECTED]>
OSDL http://developer.osdl.org/~shemminger

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to