From: Uwe Kleine-König Date: Fri, 2 Dec 2022 18:35:11 +0000 (+0100) Subject: pwm: Mark free pwm IDs as used in alloc_pwms() X-Git-Tag: v6.2-rc1~26^2~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4034e5944884dca1673e52cc392b07d0d35b6ff0;p=thirdparty%2Fkernel%2Flinux.git pwm: Mark free pwm IDs as used in alloc_pwms() alloc_pwms() only identified a free range of IDs and this range was marked as used only later by pwmchip_add(). Instead let alloc_pwms() already do the marking (which makes the function actually allocating the range and so justifies the function name). This way access to the allocated_pwms bitfield is limited to two functions only. Reviewed-by: Andy Shevchenko Link: https://lore.kernel.org/r/20221117211143.3817381-4-u.kleine-koenig@pengutronix.de Signed-off-by: Uwe Kleine-König Signed-off-by: Thierry Reding --- diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c index 2338119a09d89..b43b24bd3c9f1 100644 --- a/drivers/pwm/core.c +++ b/drivers/pwm/core.c @@ -51,6 +51,8 @@ static int alloc_pwms(unsigned int count) if (start + count > MAX_PWMS) return -ENOSPC; + bitmap_set(allocated_pwms, start, count); + return start; } @@ -297,8 +299,6 @@ int pwmchip_add(struct pwm_chip *chip) radix_tree_insert(&pwm_tree, pwm->pwm, pwm); } - bitmap_set(allocated_pwms, chip->base, chip->npwm); - INIT_LIST_HEAD(&chip->list); list_add(&chip->list, &pwm_chips);