From: Mohamad Raizudeen <raizudeen.kerneldev@gmail.com>
To: bhelgaas@google.com
Cc: alex@shazbot.org, skhan@linuxfoundation.org, jkoolstra@xs4all.nl,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] PCI: quirks: Fix out-of-bounds MMIO read in mellanox_check_broken_intx_masking()
Date: Wed, 16 Sep 2026 10:31:09 +0530 [thread overview]
Message-ID: <aqoilQgDWM_O5eXq@kernel> (raw)
In-Reply-To: <20260905161743.5766-1-raizudeen.kerneldev@gmail.com>
On Sat, Sep 05, 2026 at 09:47:43PM +0530, Mohamad Raizudeen wrote:
> The mellanox_check_broken_intx_masking() function maps 4 bytes of MMIO
> memory using ioremap() with a size of 4 bytes, but then reads two 32 bit
> values using ioread32be(fw_ver) and ioread32be(fw_ver + 1).
>
> Because fw_ver is a pointer to a 32 bit type, fw_ver + 1 advances the
> address by 4 bytes. Reading 4 bytes at offset 4 goes past the mapped 4
> byte boundary. This violates the API contract.
>
> Fix this by increasing the mapping size to 8 bytes to safely cover both
> 32 bits.
>
> Fixes: 1600f62534b7b ("PCI: support INTx masking on ConnectX-4 with firmware x.14.1100+")
> Signed-off-by: Mohamad Raizudeen <raizudeen.kerneldev@gmail.com>
> ---
> Changes in v2:
> - Fixed a typo in the commit message("ad" -> "and").
> - Updated commit message to use "violates the API contract" instead of
> "page fault or kernel panic" to avoid overstating the risk, matching
> the feedback from Alex Williamson on a similar patch.
>
> Link for v1: https://lore.kernel.org/linux-pci/20260827071940.B7CC01F000E9@smtp.kernel.org/T/
>
> drivers/pci/quirks.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index de9bbccda21f..b30ca4244f14 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -3714,7 +3714,7 @@ static void mellanox_check_broken_intx_masking(struct pci_dev *pdev)
> return;
> }
>
> - fw_ver = ioremap(pci_resource_start(pdev, 0), 4);
> + fw_ver = ioremap(pci_resource_start(pdev, 0), 8);
> if (!fw_ver) {
> pci_warn(pdev, "Can't map ConnectX-4 initialization segment\n");
> goto out;
> --
> 2.53.0
>
Hi Bjorn,
Just following up on this patch. Please let me know if you have any
feedback or if further changes are needed.
Thanks,
Mohamad Raizudeen
prev parent reply other threads:[~2026-09-16 5:01 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-05 16:17 [PATCH v2] PCI: quirks: Fix out-of-bounds MMIO read in mellanox_check_broken_intx_masking() Mohamad Raizudeen
2026-09-05 16:21 ` sashiko-bot
2026-09-16 5:01 ` Mohamad Raizudeen [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=aqoilQgDWM_O5eXq@kernel \
--to=raizudeen.kerneldev@gmail.com \
--cc=alex@shazbot.org \
--cc=bhelgaas@google.com \
--cc=jkoolstra@xs4all.nl \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=skhan@linuxfoundation.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.