summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorXu Rao <raoxu@uniontech.com>2026-07-06 17:25:00 +0800
committerUlf Hansson <ulfh@kernel.org>2026-07-10 14:39:18 +0200
commit5253aee00a4383cb0482d5e99bde48b8054ae2c0 (patch)
tree5e628480d92a17f97e40944f59c890fe095ee3b1 /drivers
parentdf92d47b3ae7384588e9b54665d66d76273f9c4e (diff)
downloadlinux-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.c5
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");