]> git.itanic.dy.fi Git - linux-stable/commitdiff
mmc: sdhci-pci: Fix possible memory leak caused by missing pci_dev_put()
authorXiongfeng Wang <wangxiongfeng2@huawei.com>
Mon, 14 Nov 2022 08:31:00 +0000 (16:31 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Nov 2022 16:42:20 +0000 (17:42 +0100)
commit 222cfa0118aa68687ace74aab8fdf77ce8fbd7e6 upstream.

pci_get_device() will increase the reference count for the returned
pci_dev. We need to use pci_dev_put() to decrease the reference count
before amd_probe() returns. There is no problem for the 'smbus_dev ==
NULL' branch because pci_dev_put() can also handle the NULL input
parameter case.

Fixes: 659c9bc114a8 ("mmc: sdhci-pci: Build o2micro support in the same module")
Signed-off-by: Xiongfeng Wang <wangxiongfeng2@huawei.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20221114083100.149200-1-wangxiongfeng2@huawei.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mmc/host/sdhci-pci-core.c

index 1e19c0d0bca803669d272d1b0fa17926f1a80fca..892c10950c81e6b38fc7fb3a04a8cb1d4f65e3aa 100644 (file)
@@ -1795,6 +1795,8 @@ static int amd_probe(struct sdhci_pci_chip *chip)
                }
        }
 
+       pci_dev_put(smbus_dev);
+
        if (gen == AMD_CHIPSET_BEFORE_ML || gen == AMD_CHIPSET_CZ)
                chip->quirks2 |= SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD;