OSDN Git Service

ieee802154: cc2520: check for return values in cc2520_filter()
authorStefan Schmidt <stefan@osg.samsung.com>
Tue, 9 Jun 2015 09:49:27 +0000 (11:49 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 9 Jun 2015 12:05:22 +0000 (14:05 +0200)
neither ram nor register write return values have been checked here.
Checking both now. Assign ret with 0 as all other assignments are inside
if blocks and might not happen before we return ret.

CID: 1230469
Signed-off-by: Stefan Schmidt <stefan@osg.samsung.com>
Acked-by: Varka Bhadram <varkabhadram@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/net/ieee802154/cc2520.c

index 15f263c..b6fc295 100644 (file)
@@ -590,22 +590,23 @@ cc2520_filter(struct ieee802154_hw *hw,
              struct ieee802154_hw_addr_filt *filt, unsigned long changed)
 {
        struct cc2520_private *priv = hw->priv;
+       int ret = 0;
 
        if (changed & IEEE802154_AFILT_PANID_CHANGED) {
                u16 panid = le16_to_cpu(filt->pan_id);
 
                dev_vdbg(&priv->spi->dev,
                         "cc2520_filter called for pan id\n");
-               cc2520_write_ram(priv, CC2520RAM_PANID,
-                                sizeof(panid), (u8 *)&panid);
+               ret = cc2520_write_ram(priv, CC2520RAM_PANID,
+                                      sizeof(panid), (u8 *)&panid);
        }
 
        if (changed & IEEE802154_AFILT_IEEEADDR_CHANGED) {
                dev_vdbg(&priv->spi->dev,
                         "cc2520_filter called for IEEE addr\n");
-               cc2520_write_ram(priv, CC2520RAM_IEEEADDR,
-                                sizeof(filt->ieee_addr),
-                                (u8 *)&filt->ieee_addr);
+               ret = cc2520_write_ram(priv, CC2520RAM_IEEEADDR,
+                                      sizeof(filt->ieee_addr),
+                                      (u8 *)&filt->ieee_addr);
        }
 
        if (changed & IEEE802154_AFILT_SADDR_CHANGED) {
@@ -613,20 +614,22 @@ cc2520_filter(struct ieee802154_hw *hw,
 
                dev_vdbg(&priv->spi->dev,
                         "cc2520_filter called for saddr\n");
-               cc2520_write_ram(priv, CC2520RAM_SHORTADDR,
-                                sizeof(addr), (u8 *)&addr);
+               ret = cc2520_write_ram(priv, CC2520RAM_SHORTADDR,
+                                      sizeof(addr), (u8 *)&addr);
        }
 
        if (changed & IEEE802154_AFILT_PANC_CHANGED) {
                dev_vdbg(&priv->spi->dev,
                         "cc2520_filter called for panc change\n");
                if (filt->pan_coord)
-                       cc2520_write_register(priv, CC2520_FRMFILT0, 0x02);
+                       ret = cc2520_write_register(priv, CC2520_FRMFILT0,
+                                                   0x02);
                else
-                       cc2520_write_register(priv, CC2520_FRMFILT0, 0x00);
+                       ret = cc2520_write_register(priv, CC2520_FRMFILT0,
+                                                   0x00);
        }
 
-       return 0;
+       return ret;
 }
 
 static inline int cc2520_set_tx_power(struct cc2520_private *priv, s32 mbm)