Messages in this thread | | | Date | Mon, 28 Jan 2008 01:29:32 -0800 | From | Andrew Morton <> | Subject | Re: [PATCH -mm 2/2] PWM LED driver |
| |
On Mon, 28 Jan 2008 10:15:51 +0100 Haavard Skinnemoen <hskinnemoen@atmel.com> wrote:
> On Sun, 27 Jan 2008 21:32:32 -0800 > Andrew Morton <akpm@linux-foundation.org> wrote: > > > On Thu, 24 Jan 2008 15:33:45 +0100 Haavard Skinnemoen <hskinnemoen@atmel.com> wrote: > > > > > + if (i > 0) { > > > + for (i = i - 1; i >= 0; i--) { > > > + led_classdev_unregister(&leds[i].cdev); > > > + pwm_channel_free(&leds[i].pwmc); > > > + } > > > + } > > > > Could be: > > > > while (--i > 0) { > > led_classdev_unregister(&leds[i].cdev); > > pwm_channel_free(&leds[i].pwmc); > > } > > > > or thereabouts. > > Almost...we need to clean up for leds[0] too. Using a postfix decrement > should take care of that. How about the patch below? > > Haavard > > >From de5002ad71a1000f81817410f02a7d9fbd5d4ecd Mon Sep 17 00:00:00 2001 > From: Haavard Skinnemoen <hskinnemoen@atmel.com> > Date: Mon, 28 Jan 2008 10:14:14 +0100 > Subject: [PATCH] PWM led driver: Simplify cleanup loop > > Why use a for loop inside an if() when we can get away with a simple > while() loop? > > Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> > --- > drivers/leds/leds-atmel-pwm.c | 8 +++----- > 1 files changed, 3 insertions(+), 5 deletions(-) > > diff --git a/drivers/leds/leds-atmel-pwm.c b/drivers/leds/leds-atmel-pwm.c > index af61f55..187031c 100644 > --- a/drivers/leds/leds-atmel-pwm.c > +++ b/drivers/leds/leds-atmel-pwm.c > @@ -100,11 +100,9 @@ static int __init pwmled_probe(struct platform_device *pdev) > return 0; > > err: > - if (i > 0) { > - for (i = i - 1; i >= 0; i--) { > - led_classdev_unregister(&leds[i].cdev); > - pwm_channel_free(&leds[i].pwmc); > - } > + while (i-- > 0) { > + led_classdev_unregister(&leds[i].cdev); > + pwm_channel_free(&leds[i].pwmc); > }
Looks OK, although I'd say that `while (--i >= 0)' is more idiomatic - predecrement, postincrement and all that?
| |