On Fri, 24 Jul 2009 09:12:12 +0200 Jean Delvare <khali at linux-fr.org> wrote: > On Thu, 23 Jul 2009 19:34:58 +0200, Roel Kluin wrote: > > pwm_config is only 3 bytes - pwm_config[3] is out of range. > > > > Signed-off-by: Roel Kluin <roel.kluin at gmail.com> > > --- > > Credits to Parfait and Nathan Keynes, > > > > diff --git a/drivers/hwmon/dme1737.c b/drivers/hwmon/dme1737.c > > index 3df202a..57e8ed4 100644 > > --- a/drivers/hwmon/dme1737.c > > +++ b/drivers/hwmon/dme1737.c > > @@ -1134,7 +1134,7 @@ static ssize_t show_pwm(struct device *dev, struct device_attribute *attr, > > res = PWM_FREQ_FROM_REG(data->pwm_freq[ix]); > > break; > > case SYS_PWM_ENABLE: > > - if (ix > 3) { > > + if (ix >= 3) { > > res = 1; /* pwm[5-6] hard-wired to manual mode */ > > } else { > > res = PWM_EN_FROM_REG(data->pwm_config[ix]); > > This code path is never called with ix == 3 (the device has no PWM4 > output) so it doesn't make any difference in practice. > This possible bug was, I believe, detected by a static code scanner called "Parfait". Hopefully people will continue to run Parfait against the kernel for years to come. It would be unfortunate if code sites such as this were to pop up in their reports again and again, so there is value in making the parfait warning go away, even if it is a cant-happen thing.