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