From: sashiko-bot@kernel.org
To: "Manikandan Muralidharan" <manikandan.m@microchip.com>,
pratyush@kernel.org, mwalle@kernel.org,
takahiro.kuwano@infineon.com, miquel.raynal@bootlin.com,
richard@nod.at, vigneshr@ti.com, robh@kernel.org,
krzk+dt@kernel.org, conor+dt@kernel.org, srini@kernel.org,
nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com,
claudiu.beznea@tuxon.dev, linux@armlinux.org.uk,
richardcochran@gmail.com, linusw@kernel.org, arnd@arndb.de,
aaro.koskinen@iki.fi, gregkh@linuxfoundation.org,
mathieu.dubois-briand@bootlin.com, michael@walle.cc,
linux-mtd@lists.infradead.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v8 5/8] nvmem: layouts: add Microchip/SST SFDP EUI layout driver
Date: Thu, 15 Oct 2026 06:42:05 +0000 [thread overview]
Message-ID: <sashiko-outbox-172353@kernel.org> (raw)
In-Reply-To: <89aa4ac1eee01e3c425c12367f1e036354787ce8.1790847519.git.manikandan.m@microchip.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] nvmem: use-after-free on layout driver module unload
--
commit 4e7e82e84f19ca0cc7f7eae9477c171b2bdab685
Author: Manikandan Muralidharan <manikandan.m@microchip.com>
nvmem: layouts: add Microchip/SST SFDP EUI layout driver
This commit adds an NVMEM layout that exposes the factory-programmed
EUI-48 identifier from the Microchip/SST vendor SFDP parameter table
as a "mac-address" cell.
> diff --git a/drivers/nvmem/layouts/sst26vf-sfdp-eui.c b/drivers/nvmem/layouts/sst26vf-sfdp-eui.c
> new file mode 100644
> index 0000000000000..641318d6f0af6
> --- /dev/null
> +++ b/drivers/nvmem/layouts/sst26vf-sfdp-eui.c
[ ... ]
> + info.name = "mac-address";
> + info.offset = base + SFDP_MCHP_EUI48_OFFSET;
> + info.bytes = ETH_ALEN;
> + info.np = of_get_child_by_name(layout_np, "mac-address");
> + info.read_post_process = sfdp_eui_read_post_process;
> +
> + ret = nvmem_add_one_cell(nvmem, &info);
[ ... ]
> +static void sfdp_eui_remove(struct nvmem_layout *layout)
> +{
> + nvmem_layout_unregister(layout);
> +}
[Severity: High]
Does this leave a dangling pointer if the layout module is unloaded?
In sfdp_eui_add_cells(), the driver registers sfdp_eui_read_post_process() as
a callback via nvmem_add_one_cell(). However, the NVMEM core tracks the
provider device's module, not the layout driver module.
Furthermore, nvmem_layout_unregister() is an empty stub in the NVMEM core.
Because the core API does not remove the cells, the cell remains in the
NVMEM device's cell list with a dangling read_post_process function pointer.
If the layout module is unloaded and the cell is subsequently read (e.g.,
via sysfs), could this execute unmapped module memory and cause a use-after-free?
--
Sashiko AI review · https://sashiko.dev/#/patchset/cover.1790847519.git.manikandan.m@microchip.com?part=5
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
WARNING: multiple messages have this Message-ID (diff)
From: sashiko-bot@kernel.org
To: "Manikandan Muralidharan" <manikandan.m@microchip.com>,
pratyush@kernel.org, mwalle@kernel.org,
takahiro.kuwano@infineon.com, miquel.raynal@bootlin.com,
richard@nod.at, vigneshr@ti.com, robh@kernel.org,
krzk+dt@kernel.org, conor+dt@kernel.org, srini@kernel.org,
nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com,
claudiu.beznea@tuxon.dev, linux@armlinux.org.uk,
richardcochran@gmail.com, linusw@kernel.org, arnd@arndb.de,
aaro.koskinen@iki.fi, gregkh@linuxfoundation.org,
mathieu.dubois-briand@bootlin.com, michael@walle.cc,
linux-mtd@lists.infradead.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v8 5/8] nvmem: layouts: add Microchip/SST SFDP EUI layout driver
Date: Thu, 15 Oct 2026 06:42:05 +0000 [thread overview]
Message-ID: <sashiko-outbox-172353@kernel.org> (raw)
In-Reply-To: <89aa4ac1eee01e3c425c12367f1e036354787ce8.1790847519.git.manikandan.m@microchip.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] nvmem: use-after-free on layout driver module unload
--
commit 4e7e82e84f19ca0cc7f7eae9477c171b2bdab685
Author: Manikandan Muralidharan <manikandan.m@microchip.com>
nvmem: layouts: add Microchip/SST SFDP EUI layout driver
This commit adds an NVMEM layout that exposes the factory-programmed
EUI-48 identifier from the Microchip/SST vendor SFDP parameter table
as a "mac-address" cell.
> diff --git a/drivers/nvmem/layouts/sst26vf-sfdp-eui.c b/drivers/nvmem/layouts/sst26vf-sfdp-eui.c
> new file mode 100644
> index 0000000000000..641318d6f0af6
> --- /dev/null
> +++ b/drivers/nvmem/layouts/sst26vf-sfdp-eui.c
[ ... ]
> + info.name = "mac-address";
> + info.offset = base + SFDP_MCHP_EUI48_OFFSET;
> + info.bytes = ETH_ALEN;
> + info.np = of_get_child_by_name(layout_np, "mac-address");
> + info.read_post_process = sfdp_eui_read_post_process;
> +
> + ret = nvmem_add_one_cell(nvmem, &info);
[ ... ]
> +static void sfdp_eui_remove(struct nvmem_layout *layout)
> +{
> + nvmem_layout_unregister(layout);
> +}
[Severity: High]
Does this leave a dangling pointer if the layout module is unloaded?
In sfdp_eui_add_cells(), the driver registers sfdp_eui_read_post_process() as
a callback via nvmem_add_one_cell(). However, the NVMEM core tracks the
provider device's module, not the layout driver module.
Furthermore, nvmem_layout_unregister() is an empty stub in the NVMEM core.
Because the core API does not remove the cells, the cell remains in the
NVMEM device's cell list with a dangling read_post_process function pointer.
If the layout module is unloaded and the cell is subsequently read (e.g.,
via sysfs), could this execute unmapped module memory and cause a use-after-free?
--
Sashiko AI review · https://sashiko.dev/#/patchset/cover.1790847519.git.manikandan.m@microchip.com?part=5
next prev parent reply other threads:[~2026-10-15 6:42 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-14 6:40 [PATCH v8 0/8] Read MAC address from SST vendor specific SFDP region Manikandan Muralidharan
2026-10-14 6:40 ` Manikandan Muralidharan
2026-10-14 6:40 ` [PATCH v8 1/8] dt-bindings: mtd: jedec,spi-nor: allow the SFDP to be exposed via NVMEM Manikandan Muralidharan
2026-10-14 6:40 ` Manikandan Muralidharan
2026-10-14 6:40 ` [PATCH v8 2/8] dt-bindings: nvmem: layouts: add Microchip/SST SFDP EUI layout Manikandan Muralidharan
2026-10-14 6:40 ` Manikandan Muralidharan
2026-10-14 6:40 ` [PATCH v8 3/8] nvmem: core: take a reference on dev.of_node in nvmem_register() Manikandan Muralidharan
2026-10-14 6:40 ` Manikandan Muralidharan
2026-10-14 8:36 ` Miquel Raynal
2026-10-14 8:36 ` Miquel Raynal
2026-10-15 9:12 ` Michael Walle
2026-10-15 9:12 ` Michael Walle
2026-10-15 11:26 ` Manikandan.M
2026-10-15 11:26 ` Manikandan.M
2026-10-14 6:40 ` [PATCH v8 4/8] mtd: spi-nor: sfdp: expose the SFDP as a read-only NVMEM device Manikandan Muralidharan
2026-10-14 6:40 ` Manikandan Muralidharan
2026-10-14 8:38 ` Miquel Raynal
2026-10-14 8:38 ` Miquel Raynal
2026-10-15 6:42 ` sashiko-bot
2026-10-15 6:42 ` sashiko-bot
2026-10-15 9:21 ` Michael Walle
2026-10-15 9:21 ` Michael Walle
2026-10-14 6:40 ` [PATCH v8 5/8] nvmem: layouts: add Microchip/SST SFDP EUI layout driver Manikandan Muralidharan
2026-10-14 6:40 ` Manikandan Muralidharan
2026-10-14 8:52 ` Miquel Raynal
2026-10-14 8:52 ` Miquel Raynal
2026-10-15 11:42 ` Manikandan.M
2026-10-15 11:42 ` Manikandan.M
2026-10-15 6:42 ` sashiko-bot [this message]
2026-10-15 6:42 ` sashiko-bot
2026-10-14 6:40 ` [PATCH v8 6/8] ARM: dts: microchip: sama5d27_wlsom1: use fixed-partitions for QSPI flash Manikandan Muralidharan
2026-10-14 6:40 ` Manikandan Muralidharan
2026-10-14 6:40 ` [PATCH v8 7/8] ARM: dts: microchip: sama5d27_wlsom1: read MAC address from QSPI SFDP Manikandan Muralidharan
2026-10-14 6:40 ` Manikandan Muralidharan
2026-10-14 6:40 ` [PATCH v8 8/8] ARM: configs: sama5: enable Microchip/SST SFDP EUI NVMEM layout Manikandan Muralidharan
2026-10-14 6:40 ` Manikandan Muralidharan
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=sashiko-outbox-172353@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=aaro.koskinen@iki.fi \
--cc=alexandre.belloni@bootlin.com \
--cc=arnd@arndb.de \
--cc=claudiu.beznea@tuxon.dev \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=krzk+dt@kernel.org \
--cc=linusw@kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux@armlinux.org.uk \
--cc=manikandan.m@microchip.com \
--cc=mathieu.dubois-briand@bootlin.com \
--cc=michael@walle.cc \
--cc=miquel.raynal@bootlin.com \
--cc=mwalle@kernel.org \
--cc=nicolas.ferre@microchip.com \
--cc=pratyush@kernel.org \
--cc=richard@nod.at \
--cc=richardcochran@gmail.com \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=srini@kernel.org \
--cc=takahiro.kuwano@infineon.com \
--cc=vigneshr@ti.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.