Commit fd0e6aae authored by Xiongfeng Wang's avatar Xiongfeng Wang Committed by sanglipeng
Browse files

mmc: sdhci-pci: Fix possible memory leak caused by missing pci_dev_put()

stable inclusion
from stable-v5.10.156
commit 4423866d31a06a810db22062ed13389416a66b22
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I7MCG1

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=4423866d31a06a810db22062ed13389416a66b22



--------------------------------

commit 222cfa01 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: 659c9bc1 ("mmc: sdhci-pci: Build o2micro support in the same module")
Signed-off-by: default avatarXiongfeng Wang <wangxiongfeng2@huawei.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20221114083100.149200-1-wangxiongfeng2@huawei.com


Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarsanglipeng <sanglipeng1@jd.com>
parent 0c135c0a
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1799,6 +1799,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;