]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
mt76: mt7615: always release sem in mt7615_load_patch
authorLorenzo Bianconi <lorenzo@kernel.org>
Tue, 2 Jul 2019 09:24:51 +0000 (11:24 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 5 Oct 2019 11:14:17 +0000 (13:14 +0200)
[ Upstream commit 2fc446487c364bf8bbd5f8f5f27e52d914fa1d72 ]

Release patch semaphore even if request_firmware fails in
mt7615_load_patch

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c

index dc1301effa242fe29bcae0eaa719725be437c977..e2dd425ac97e0bf16f4c6156902a6103041dcee8 100644 (file)
@@ -289,9 +289,9 @@ static int mt7615_driver_own(struct mt7615_dev *dev)
 
 static int mt7615_load_patch(struct mt7615_dev *dev)
 {
-       const struct firmware *fw;
-       const struct mt7615_patch_hdr *hdr;
        const char *firmware = MT7615_ROM_PATCH;
+       const struct mt7615_patch_hdr *hdr;
+       const struct firmware *fw = NULL;
        int len, ret, sem;
 
        sem = mt7615_mcu_patch_sem_ctrl(dev, 1);
@@ -307,7 +307,7 @@ static int mt7615_load_patch(struct mt7615_dev *dev)
 
        ret = request_firmware(&fw, firmware, dev->mt76.dev);
        if (ret)
-               return ret;
+               goto out;
 
        if (!fw || !fw->data || fw->size < sizeof(*hdr)) {
                dev_err(dev->mt76.dev, "Invalid firmware\n");