diff options
| author | Xu Rao <raoxu@uniontech.com> | 2026-07-06 17:25:00 +0800 |
|---|---|---|
| committer | Ulf Hansson <ulfh@kernel.org> | 2026-07-10 14:39:18 +0200 |
| commit | 5253aee00a4383cb0482d5e99bde48b8054ae2c0 (patch) | |
| tree | 5e628480d92a17f97e40944f59c890fe095ee3b1 /drivers | |
| parent | df92d47b3ae7384588e9b54665d66d76273f9c4e (diff) | |
| download | linux-next-5253aee00a4383cb0482d5e99bde48b8054ae2c0.tar.gz linux-next-5253aee00a4383cb0482d5e99bde48b8054ae2c0.zip | |
mmc: block: reject invalid perdev_minors before division
The mmcblk.perdev_minors module parameter is parsed as a signed int and
is used during mmc_blk_init() to compute the number of supported block
devices.
Passing perdev_minors=0 makes the init path divide by zero when it
computes max_devices. Negative values are invalid as well and would make
max_devices negative before it is later used as an IDA limit.
Reject non-positive perdev_minors values before registering any mmcblk
resources.
Signed-off-by: Xu Rao <raoxu@uniontech.com>
Signed-off-by: Ulf Hansson <ulfh@kernel.org>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/mmc/core/block.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c index 54a923ba4f1e..e760d13ee325 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c @@ -3337,6 +3337,11 @@ static int __init mmc_blk_init(void) { int res; + if (perdev_minors <= 0) { + pr_err("mmcblk: invalid minors per device: %d\n", perdev_minors); + return -EINVAL; + } + res = bus_register(&mmc_rpmb_bus_type); if (res < 0) { pr_err("mmcblk: could not register RPMB bus type\n"); |
