[PATCH] pinctrl: mcp23s08: reject devices without match data
From: Jiale Yao
Date: Fri Sep 25 2026 - 09:43:49 EST
A device bound through driver_override need not match an entry in the
driver tables. In that case spi_get_device_match_data() returns NULL,
but mcp23s08_probe() later passes the result to the regmap setup and
dereferences it while setting up each device.
Reject devices without match data before reading device properties.
Fixes: 2e44555b05c0 ("pinctrl: mcp23s08: Simplify probe()/mcp23s08_spi_regmap_init()")
Signed-off-by: Jiale Yao <yaojiale02@xxxxxxx>
---
drivers/pinctrl/pinctrl-mcp23s08_spi.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/pinctrl/pinctrl-mcp23s08_spi.c b/drivers/pinctrl/pinctrl-mcp23s08_spi.c
index bacebcff67ef..926034fcd512 100644
--- a/drivers/pinctrl/pinctrl-mcp23s08_spi.c
+++ b/drivers/pinctrl/pinctrl-mcp23s08_spi.c
@@ -146,6 +146,8 @@ static int mcp23s08_probe(struct spi_device *spi)
u8 v;
info = spi_get_device_match_data(spi);
+ if (!info)
+ return -ENODATA;
ret = device_property_read_u8(dev, "microchip,spi-present-mask", &v);
if (ret) {
--
2.34.1