pwm: samsung: Don't uses devm_*() functions in ->request()
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Mon, 25 Mar 2019 09:49:34 +0000 (10:49 +0100)
committerThierry Reding <thierry.reding@gmail.com>
Thu, 9 May 2019 15:29:15 +0000 (17:29 +0200)
A call to ->request() is always paired by a call to ->free() before a
given device is disposed. So the simplification that usually is possible
when using devm_*() functions cannot be used here. So use plain
kzalloc() and kfree() for improved runtime behaviour and reduced memory
footprint.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
[thierry.reding@gmail.com: fix build failure]
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
drivers/pwm/pwm-samsung.c

index 3762432..6674e1e 100644 (file)
@@ -226,7 +226,7 @@ static int pwm_samsung_request(struct pwm_chip *chip, struct pwm_device *pwm)
                return -EINVAL;
        }
 
-       our_chan = devm_kzalloc(chip->dev, sizeof(*our_chan), GFP_KERNEL);
+       our_chan = kzalloc(sizeof(*our_chan), GFP_KERNEL);
        if (!our_chan)
                return -ENOMEM;
 
@@ -237,7 +237,7 @@ static int pwm_samsung_request(struct pwm_chip *chip, struct pwm_device *pwm)
 
 static void pwm_samsung_free(struct pwm_chip *chip, struct pwm_device *pwm)
 {
-       devm_kfree(chip->dev, pwm_get_chip_data(pwm));
+       kfree(pwm_get_chip_data(pwm));
 }
 
 static int pwm_samsung_enable(struct pwm_chip *chip, struct pwm_device *pwm)