staging: rtl8192u: propagate errors in eprom_read
authorSalah Triki <salah.triki@acm.org>
Wed, 4 May 2016 03:42:41 +0000 (04:42 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 19 Jun 2016 02:49:02 +0000 (19:49 -0700)
Propagate error from eprom_r and change the return type of eprom_read
from u32 to int.

Signed-off-by: Salah Triki <salah.triki@acm.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8192u/r8180_93cx6.c
drivers/staging/rtl8192u/r8180_93cx6.h

index 2c53132..f35defc 100644 (file)
@@ -106,7 +106,7 @@ static void eprom_send_bits_string(struct net_device *dev, short b[], int len)
 }
 
 
-u32 eprom_read(struct net_device *dev, u32 addr)
+int eprom_read(struct net_device *dev, u32 addr)
 {
        struct r8192_priv *priv = ieee80211_priv(dev);
        short read_cmd[] = {1, 1, 0};
@@ -114,6 +114,7 @@ u32 eprom_read(struct net_device *dev, u32 addr)
        int i;
        int addr_len;
        u32 ret;
+       int err;
 
        ret = 0;
        /* enable EPROM programming */
@@ -157,7 +158,11 @@ u32 eprom_read(struct net_device *dev, u32 addr)
                 * and reading data. (eeprom outs a dummy 0)
                 */
                eprom_ck_cycle(dev);
-               ret |= (eprom_r(dev)<<(15-i));
+               err = eprom_r(dev);
+               if (err < 0)
+                       return err;
+
+               ret |= err<<(15-i);
        }
 
        eprom_cs(dev, 0);
index b840348..9cf7f58 100644 (file)
@@ -40,4 +40,4 @@
 #define EPROM_TXPW1 0x3d
 
 
-u32 eprom_read(struct net_device *dev, u32 addr); /* reads a 16 bits word */
+int eprom_read(struct net_device *dev, u32 addr); /* reads a 16 bits word */