diff options
author | Dominik Sliwa <dominik.sliwa@toradex.com> | 2019-05-09 17:20:01 +0200 |
---|---|---|
committer | Dominik Sliwa <dominik.sliwa@toradex.com> | 2019-05-09 17:20:01 +0200 |
commit | cf2620f8c3bbbcc7ad33452e685cafd727997866 (patch) | |
tree | 9a30b5ddc3c37f88d0c845e42955c2f7291f5e6b /drivers/net/wireless/mediatek/mt76/eeprom.c | |
parent | 04b0b4365fea6da59cdf1c8e9b6377c532ccd965 (diff) |
Backports v4.19.41Colibri-T30_LXDE-Image_2.8b7.-20200610Colibri-T20_LXDE-Image_2.8b7.-20200610Apalis-TK1_Console-Image_3.0b3.118-20191231Apalis-T30_LXDE-Image_2.8b7.-20200610
Backports generated by toradex backports d3921c0fde334dcd67e92cdc955c254525ab62d0
against mainline kernel tag v4.19.41
Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/eeprom.c')
-rw-r--r-- | drivers/net/wireless/mediatek/mt76/eeprom.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/eeprom.c b/drivers/net/wireless/mediatek/mt76/eeprom.c index 530e559..a152992 100644 --- a/drivers/net/wireless/mediatek/mt76/eeprom.c +++ b/drivers/net/wireless/mediatek/mt76/eeprom.c @@ -54,22 +54,30 @@ mt76_get_of_eeprom(struct mt76_dev *dev, int len) part = np->name; mtd = get_mtd_device_nm(part); - if (IS_ERR(mtd)) - return PTR_ERR(mtd); + if (IS_ERR(mtd)) { + ret = PTR_ERR(mtd); + goto out_put_node; + } - if (size <= sizeof(*list)) - return -EINVAL; + if (size <= sizeof(*list)) { + ret = -EINVAL; + goto out_put_node; + } offset = be32_to_cpup(list); ret = mtd_read(mtd, offset, len, &retlen, dev->eeprom.data); put_mtd_device(mtd); if (ret) - return ret; + goto out_put_node; - if (retlen < len) - return -EINVAL; + if (retlen < len) { + ret = -EINVAL; + goto out_put_node; + } - return 0; +out_put_node: + of_node_put(np); + return ret; #else return -ENOENT; #endif |