All of lore.kernel.org
 help / color / mirror / Atom feed
From: Slawomir Stepien <sst@poczta.fm>
To: Basavaraj Natikar <bnatikar@amd.com>
Cc: syzbot <syzbot@kernel.org>,
	syzkaller-bugs@googlegroups.com,
	Basavaraj Natikar <basavaraj.natikar@amd.com>,
	Benjamin Tissoires <bentiss@kernel.org>,
	Jiri Kosina <jikos@kernel.org>,
	linux-input@vger.kernel.org,
	Sandeep Singh <sandeep.singh@amd.com>,
	linux-kernel@vger.kernel.org, syzbot@lists.linux.dev
Subject: Re: [PATCH] HID: amd_sfh: Validate PCI BAR size before mapping
Date: Mon, 14 Sep 2026 08:40:42 +0200	[thread overview]
Message-ID: <aqeW6o0kFhxTaloK@nr200> (raw)
In-Reply-To: <7f8690bc-17c7-45e7-bacd-a341b2ef0a4b@amd.com>

On wrz 11, 2026 21:33, Basavaraj Natikar wrote:
> 
> On 8/27/2026 12:06 PM, syzbot wrote:
> > [You don't often get email from syzbot@kernel.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
> > 
> > From: Slawomir Stepien <sst@poczta.fm>
> > 
> > The amd_sfh driver maps PCI BAR 2 using pcim_iomap_regions() and
> > subsequently accesses MMIO registers at offsets up to 0x10958 (e.g.,
> > AMD_P2C_MSG3 at 0x1068C). However, the driver never validates that the BAR
> > size is large enough to cover these accesses. If the driver is bound to a
> > device with a smaller BAR 2, this leads to an out-of-bounds memory access
> > and a page fault during the probe function.
> > 
> > For example, a page fault can occur when reading from privdata->mmio +
> > AMD_P2C_MSG3 in mp2_select_ops():
> > 
> >    BUG: unable to handle page fault for address: ffffc9000390368c
> >    PGD 100000067 P4D 100000067 PUD 1012c1067 PMD 105b64067 PTE 0
> >    Oops: Oops: 0000 [#1] SMP KASAN NOPTI
> >    RIP: 0010:readl arch/x86/include/asm/io.h:59 [inline]
> >    RIP: 0010:mp2_select_ops drivers/hid/amd-sfh-hid/amd_sfh_pcie.c:282
> >    [inline]
> >    RIP: 0010:amd_mp2_pci_probe+0x337/0x5f0
> >    drivers/hid/amd-sfh-hid/amd_sfh_pcie.c:487
> >    Call Trace:
> >     <TASK>
> >     local_pci_probe drivers/pci/pci-driver.c:332 [inline]
> >     pci_call_probe drivers/pci/pci-driver.c:394 [inline]
> >     __pci_device_probe drivers/pci/pci-driver.c:455 [inline]
> >     pci_device_probe+0x431/0xc90 drivers/pci/pci-driver.c:489
> > 
> > Fix this by verifying that the length of BAR 2 is at least 128KB before
> > attempting to map it. Since the maximum accessed offset is 0x10958, and PCI
> > BAR sizes are powers of 2, any legitimate hardware will have a BAR size of
> > at least 128KB.
> > 
> > Fixes: 4f567b9f8141 ("SFH: PCIe driver to add support of AMD sensor fusion hub")
> > Assisted-by: Gemini:gemini-3.7-flash Gemini:gemini-3.1-pro-preview syzbot
> > Reported-by: syzbot+4eadd4dfe9e66522bae8@syzkaller.appspotmail.com
> > Closes: https://syzkaller.appspot.com/bug?extid=4eadd4dfe9e66522bae8
> > Link: https://syzkaller.appspot.com/ai_job?id=3bc1c45c-548f-4ab5-8243-d2c8ec321d6c
> > Signed-off-by: Slawomir Stepien <sst@poczta.fm>
> > 
> > ---
> > diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_common.h b/drivers/hid/amd-sfh-hid/amd_sfh_common.h
> > index 78f830c13..c0c324565 100644
> > --- a/drivers/hid/amd-sfh-hid/amd_sfh_common.h
> > +++ b/drivers/hid/amd-sfh-hid/amd_sfh_common.h
> > @@ -17,6 +17,8 @@
> >   #define PCI_DEVICE_ID_AMD_MP2          0x15E4
> >   #define PCI_DEVICE_ID_AMD_MP2_1_1      0x164A
> > 
> > +#define AMD_SFH_MIN_BAR_SIZE           (128 * 1024)
> 
> Please use SZ_128K instead of the open-coded (128 * 1024), A short comment noting the value
> must cover the highest register offset (0x10958) would also help future readers.
> 
> With that:
> Acked-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com>

Sure, will send v2, thanks!

-- 
Slawomir Stepien

      reply	other threads:[~2026-09-14  6:40 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-27  6:36 [PATCH] HID: amd_sfh: Validate PCI BAR size before mapping syzbot
2026-08-27  6:45 ` sashiko-bot
2026-09-11 14:51 ` Jiri Kosina
2026-09-11 16:03 ` Basavaraj Natikar
2026-09-14  6:40   ` Slawomir Stepien [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=aqeW6o0kFhxTaloK@nr200 \
    --to=sst@poczta.fm \
    --cc=basavaraj.natikar@amd.com \
    --cc=bentiss@kernel.org \
    --cc=bnatikar@amd.com \
    --cc=jikos@kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sandeep.singh@amd.com \
    --cc=syzbot@kernel.org \
    --cc=syzbot@lists.linux.dev \
    --cc=syzkaller-bugs@googlegroups.com \
    /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.