Re: [PATCH v2 net-next 01/15] net: mdio-regmap: permit working with non-MMIO regmaps
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date: 2026-01-22 14:38:44
Also in:
linux-devicetree, lkml
On Thu, Jan 22, 2026 at 03:47:04PM +0200, Vladimir Oltean wrote:
On Thu, Jan 22, 2026 at 02:13:01PM +0200, Vladimir Oltean wrote:
...
quoted
quoted
quoted
+ unsigned int base;Hmm... resource_size_t ?
quoted
Well, regmap_read() takes "unsigned int reg". https://elixir.bootlin.com/linux/v6.18.6/source/include/linux/regmap.h#L1297 So in practice, a truncation will be done somewhere if the register base exceeds unsigned int storage capacity. But I didn't feel that it's worth handling that.Would this address your feedback?
Yes and no. See my remarks below.
quoted hunk ↗ jump to hunk
diff --git a/drivers/net/mdio/mdio-regmap.c b/drivers/net/mdio/mdio-regmap.c index 2a0e9c519fa3..416ff4e13e8f 100644 --- a/drivers/net/mdio/mdio-regmap.c +++ b/drivers/net/mdio/mdio-regmap.c@@ -67,8 +67,15 @@ struct mii_bus *devm_mdio_regmap_register(struct device *dev, mr = mii->priv; mr->regmap = config->regmap; mr->valid_addr = config->valid_addr; - if (config->resource) + if (config->resource) {
Btw, this might be not enough, one should check size and flags as well before use. There was a discussion about this recently. Maybe we should just move to a simple unsigned int in the config for now? Because handling resources maybe considered as over engineering in this case.
+ if (config->resource->start > U32_MAX ||
+ config->resource->end > U32_MAX) {Ideally it should be resource_overlaps() check. But see above.
+ dev_err(config->parent, + "Resource exceeds regmap API addressing possibilities\n"); + return ERR_PTR(-EINVAL); + } mr->base = config->resource->start; + }
-- With Best Regards, Andy Shevchenko