From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: "Rodríguez Barbarin,
José Javier" <JoseJavier.Rodriguez@duagon.com>,
"Jorge Sanjuan Garcia" <jorge.sanjuangarcia@duagon.com>,
"Javier Rodriguez" <josejavier.rodriguez@duagon.com>,
"Johannes Thumshirn" <jth@kernel.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Sasha Levin" <sashal@kernel.org>,
morbidrsa@gmail.com
Subject: [PATCH AUTOSEL 6.2 20/20] mcb-pci: Reallocate memory region to avoid memory overlapping
Date: Sat, 6 May 2023 20:32:35 -0400 [thread overview]
Message-ID: <20230507003237.4074305-20-sashal@kernel.org> (raw)
In-Reply-To: <20230507003237.4074305-1-sashal@kernel.org>
From: Rodríguez Barbarin, José Javier <JoseJavier.Rodriguez@duagon.com>
[ Upstream commit 9be24faadd085c284890c3afcec7a0184642315a ]
mcb-pci requests a fixed-size memory region to parse the chameleon
table, however, if the chameleon table is smaller that the allocated
region, it could overlap with the IP Cores' memory regions.
After parsing the chameleon table, drop/reallocate the memory region
with the actual chameleon table size.
Co-developed-by: Jorge Sanjuan Garcia <jorge.sanjuangarcia@duagon.com>
Signed-off-by: Jorge Sanjuan Garcia <jorge.sanjuangarcia@duagon.com>
Signed-off-by: Javier Rodriguez <josejavier.rodriguez@duagon.com>
Signed-off-by: Johannes Thumshirn <jth@kernel.org>
Link: https://lore.kernel.org/r/20230411083329.4506-3-jth@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/mcb/mcb-pci.c | 27 +++++++++++++++++++++++++--
1 file changed, 25 insertions(+), 2 deletions(-)
diff --git a/drivers/mcb/mcb-pci.c b/drivers/mcb/mcb-pci.c
index dc88232d9af83..53d9202ff9a7c 100644
--- a/drivers/mcb/mcb-pci.c
+++ b/drivers/mcb/mcb-pci.c
@@ -31,7 +31,7 @@ static int mcb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
{
struct resource *res;
struct priv *priv;
- int ret;
+ int ret, table_size;
unsigned long flags;
priv = devm_kzalloc(&pdev->dev, sizeof(struct priv), GFP_KERNEL);
@@ -90,7 +90,30 @@ static int mcb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
if (ret < 0)
goto out_mcb_bus;
- dev_dbg(&pdev->dev, "Found %d cells\n", ret);
+ table_size = ret;
+
+ if (table_size < CHAM_HEADER_SIZE) {
+ /* Release the previous resources */
+ devm_iounmap(&pdev->dev, priv->base);
+ devm_release_mem_region(&pdev->dev, priv->mapbase, CHAM_HEADER_SIZE);
+
+ /* Then, allocate it again with the actual chameleon table size */
+ res = devm_request_mem_region(&pdev->dev, priv->mapbase,
+ table_size,
+ KBUILD_MODNAME);
+ if (!res) {
+ dev_err(&pdev->dev, "Failed to request PCI memory\n");
+ ret = -EBUSY;
+ goto out_mcb_bus;
+ }
+
+ priv->base = devm_ioremap(&pdev->dev, priv->mapbase, table_size);
+ if (!priv->base) {
+ dev_err(&pdev->dev, "Cannot ioremap\n");
+ ret = -ENOMEM;
+ goto out_mcb_bus;
+ }
+ }
mcb_bus_add_devices(priv->bus);
--
2.39.2
prev parent reply other threads:[~2023-05-07 0:34 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-07 0:32 [PATCH AUTOSEL 6.2 01/20] ASoC: jack: allow multiple interrupt per gpio Sasha Levin
2023-05-07 0:32 ` [PATCH AUTOSEL 6.2 02/20] staging: rtl8192e: Replace macro RTL_PCI_DEVICE with PCI_DEVICE Sasha Levin
2023-05-07 0:32 ` [PATCH AUTOSEL 6.2 03/20] HID: apple: Set the tilde quirk flag on the Geyser 4 and later Sasha Levin
2023-05-07 0:32 ` [PATCH AUTOSEL 6.2 04/20] iio: imu: st_lsm6dsx: discard samples during filters settling time Sasha Levin
2023-05-07 0:32 ` [PATCH AUTOSEL 6.2 05/20] staging: axis-fifo: initialize timeouts in init only Sasha Levin
2023-05-07 0:32 ` [PATCH AUTOSEL 6.2 06/20] ASoC: tegra: Support coupled mic-hp detection Sasha Levin
2023-05-07 0:32 ` [PATCH AUTOSEL 6.2 07/20] ASoC: amd: yc: Add DMI entries to support HP OMEN 16-n0xxx (8A42) Sasha Levin
2023-05-07 0:32 ` [PATCH AUTOSEL 6.2 08/20] HID: logitech-hidpp: Don't use the USB serial for USB devices Sasha Levin
2023-05-07 0:32 ` [PATCH AUTOSEL 6.2 09/20] HID: logitech-hidpp: Reconcile USB and Unifying serials Sasha Levin
2023-05-07 0:32 ` [PATCH AUTOSEL 6.2 10/20] spi: spi-imx: fix MX51_ECSPI_* macros when cs > 3 Sasha Levin
2023-05-07 0:32 ` [PATCH AUTOSEL 6.2 11/20] usb: typec: ucsi: acpi: add quirk for ASUS Zenbook UM325 Sasha Levin
2023-05-07 0:32 ` [PATCH AUTOSEL 6.2 12/20] ALSA: hda: LNL: add HD Audio PCI ID Sasha Levin
2023-05-07 0:32 ` [PATCH AUTOSEL 6.2 13/20] ASoC: amd: Add Dell G15 5525 to quirks list Sasha Levin
2023-05-07 0:32 ` [PATCH AUTOSEL 6.2 14/20] ASoC: amd: yc: Add ThinkBook 14 G5+ ARP to quirks list for acp6x Sasha Levin
2023-05-07 0:32 ` [PATCH AUTOSEL 6.2 15/20] HID: apple: Set the tilde quirk flag on the Geyser 3 Sasha Levin
2023-05-07 0:32 ` [PATCH AUTOSEL 6.2 16/20] HID: Ignore battery for ELAN touchscreen on ROG Flow X13 GV301RA Sasha Levin
2023-05-07 0:32 ` [PATCH AUTOSEL 6.2 17/20] HID: wacom: generic: Set battery quirk only when we see battery data Sasha Levin
2023-05-07 0:32 ` [PATCH AUTOSEL 6.2 18/20] usb: typec: tcpm: fix multiple times discover svids error Sasha Levin
2023-05-07 0:32 ` [PATCH AUTOSEL 6.2 19/20] serial: 8250: Reinit port->pm on port specific driver unbind Sasha Levin
2023-05-07 0:32 ` Sasha Levin [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230507003237.4074305-20-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=JoseJavier.Rodriguez@duagon.com \
--cc=gregkh@linuxfoundation.org \
--cc=jorge.sanjuangarcia@duagon.com \
--cc=jth@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=morbidrsa@gmail.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox