static int smsc95xx_reset(struct usbnet *dev)
 {
        struct smsc95xx_priv *pdata = dev->driver_priv;
-       u32 read_buf, write_buf, burst_cap;
+       u32 read_buf, burst_cap;
        int ret = 0, timeout;
 
        netif_dbg(dev, ifup, dev->net, "entering smsc95xx_reset\n");
                return ret;
        netif_dbg(dev, ifup, dev->net, "ID_REV = 0x%08x\n", read_buf);
 
+       ret = smsc95xx_read_reg(dev, LED_GPIO_CFG, &read_buf);
+       if (ret < 0)
+               return ret;
        /* Configure GPIO pins as LED outputs */
-       write_buf = LED_GPIO_CFG_SPD_LED | LED_GPIO_CFG_LNK_LED |
-               LED_GPIO_CFG_FDX_LED;
-       ret = smsc95xx_write_reg(dev, LED_GPIO_CFG, write_buf);
+       read_buf |= LED_GPIO_CFG_SPD_LED | LED_GPIO_CFG_LNK_LED |
+                   LED_GPIO_CFG_FDX_LED;
+       ret = smsc95xx_write_reg(dev, LED_GPIO_CFG, read_buf);
        if (ret < 0)
                return ret;