Hello,

It looks like a goto may be wanted on line 632.

julia

---------- Forwarded message ----------
Date: Wed, 24 Apr 2019 03:38:39 +0800
From: kbuild test robot <[email protected]>
To: [email protected]
Cc: Julia Lawall <[email protected]>
Subject: [hwmon:hwmon-playground 130/134] drivers/hwmon/max6650.c:632:4-10:
    preceding lock on line 616

CC: [email protected]
CC: [email protected]
TO: Guenter Roeck <[email protected]>

tree:   
https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git 
hwmon-playground
head:   05d763050bbaa40daa4b60a3912c9311ca5791a5
commit: 77d270a1d4db919db0b02fec1d85ad5a57d556d7 [130/134] hwmon: (max6650) 
Convert to use devm_hwmon_device_register_with_info
:::::: branch date: 6 hours ago
:::::: commit date: 6 hours ago

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <[email protected]>


>> drivers/hwmon/max6650.c:632:4-10: preceding lock on line 616

# 
https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git/commit/?id=77d270a1d4db919db0b02fec1d85ad5a57d556d7
git remote add hwmon 
https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git
git remote update hwmon
git checkout 77d270a1d4db919db0b02fec1d85ad5a57d556d7
vim +632 drivers/hwmon/max6650.c

77d270a1d Guenter Roeck 2019-04-20  608
77d270a1d Guenter Roeck 2019-04-20  609  static int max6650_write(struct device 
*dev, enum hwmon_sensor_types type,
77d270a1d Guenter Roeck 2019-04-20  610                          u32 attr, int 
channel, long val)
77d270a1d Guenter Roeck 2019-04-20  611  {
77d270a1d Guenter Roeck 2019-04-20  612         struct max6650_data *data = 
dev_get_drvdata(dev);
77d270a1d Guenter Roeck 2019-04-20  613         int ret = 0;
77d270a1d Guenter Roeck 2019-04-20  614         u8 reg;
77d270a1d Guenter Roeck 2019-04-20  615
77d270a1d Guenter Roeck 2019-04-20 @616         mutex_lock(&data->update_lock);
77d270a1d Guenter Roeck 2019-04-20  617
77d270a1d Guenter Roeck 2019-04-20  618         switch (type) {
77d270a1d Guenter Roeck 2019-04-20  619         case hwmon_pwm:
77d270a1d Guenter Roeck 2019-04-20  620                 switch (attr) {
77d270a1d Guenter Roeck 2019-04-20  621                 case hwmon_pwm_input:
77d270a1d Guenter Roeck 2019-04-20  622                         reg = 
pwm_to_dac(clamp_val(val, 0, 255),
77d270a1d Guenter Roeck 2019-04-20  623                                         
 data->config & MAX6650_CFG_V12);
77d270a1d Guenter Roeck 2019-04-20  624                         ret = 
i2c_smbus_write_byte_data(data->client,
77d270a1d Guenter Roeck 2019-04-20  625                                         
                MAX6650_REG_DAC, reg);
77d270a1d Guenter Roeck 2019-04-20  626                         if (ret)
77d270a1d Guenter Roeck 2019-04-20  627                                 break;
77d270a1d Guenter Roeck 2019-04-20  628                         data->dac = reg;
77d270a1d Guenter Roeck 2019-04-20  629                         break;
77d270a1d Guenter Roeck 2019-04-20  630                 case hwmon_pwm_enable:
77d270a1d Guenter Roeck 2019-04-20  631                         if (val < 0 || 
val >= ARRAY_SIZE(max6650_pwm_modes))
77d270a1d Guenter Roeck 2019-04-20 @632                                 return 
-EINVAL;
77d270a1d Guenter Roeck 2019-04-20  633                         ret = 
max6650_set_operating_mode(data,
77d270a1d Guenter Roeck 2019-04-20  634                                         
        max6650_pwm_modes[val]);
77d270a1d Guenter Roeck 2019-04-20  635                         break;
77d270a1d Guenter Roeck 2019-04-20  636                 default:
77d270a1d Guenter Roeck 2019-04-20  637                         ret = 
-EOPNOTSUPP;
77d270a1d Guenter Roeck 2019-04-20  638                         break;
77d270a1d Guenter Roeck 2019-04-20  639                 }
77d270a1d Guenter Roeck 2019-04-20  640         case hwmon_fan:
77d270a1d Guenter Roeck 2019-04-20  641                 switch (attr) {
77d270a1d Guenter Roeck 2019-04-20  642                 case hwmon_fan_div:
77d270a1d Guenter Roeck 2019-04-20  643                         switch (val) {
77d270a1d Guenter Roeck 2019-04-20  644                         case 1:
77d270a1d Guenter Roeck 2019-04-20  645                                 reg = 0;
77d270a1d Guenter Roeck 2019-04-20  646                                 break;
77d270a1d Guenter Roeck 2019-04-20  647                         case 2:
77d270a1d Guenter Roeck 2019-04-20  648                                 reg = 1;
77d270a1d Guenter Roeck 2019-04-20  649                                 break;
77d270a1d Guenter Roeck 2019-04-20  650                         case 4:
77d270a1d Guenter Roeck 2019-04-20  651                                 reg = 2;
77d270a1d Guenter Roeck 2019-04-20  652                                 break;
77d270a1d Guenter Roeck 2019-04-20  653                         case 8:
77d270a1d Guenter Roeck 2019-04-20  654                                 reg = 3;
77d270a1d Guenter Roeck 2019-04-20  655                                 break;
77d270a1d Guenter Roeck 2019-04-20  656                         default:
77d270a1d Guenter Roeck 2019-04-20  657                                 ret = 
-EINVAL;
77d270a1d Guenter Roeck 2019-04-20  658                                 goto 
error;
77d270a1d Guenter Roeck 2019-04-20  659                         }
77d270a1d Guenter Roeck 2019-04-20  660                         ret = 
i2c_smbus_write_byte_data(data->client,
77d270a1d Guenter Roeck 2019-04-20  661                                         
                MAX6650_REG_COUNT, reg);
77d270a1d Guenter Roeck 2019-04-20  662                         if (ret)
77d270a1d Guenter Roeck 2019-04-20  663                                 break;
77d270a1d Guenter Roeck 2019-04-20  664                         data->count = 
reg;
77d270a1d Guenter Roeck 2019-04-20  665                         break;
77d270a1d Guenter Roeck 2019-04-20  666                 case hwmon_fan_target:
77d270a1d Guenter Roeck 2019-04-20  667                         if (val < 0) {
77d270a1d Guenter Roeck 2019-04-20  668                                 ret = 
-EINVAL;
77d270a1d Guenter Roeck 2019-04-20  669                                 break;
77d270a1d Guenter Roeck 2019-04-20  670                         }
77d270a1d Guenter Roeck 2019-04-20  671                         ret = 
max6650_set_target(data, val);
77d270a1d Guenter Roeck 2019-04-20  672                         break;
77d270a1d Guenter Roeck 2019-04-20  673                 default:
77d270a1d Guenter Roeck 2019-04-20  674                         ret = 
-EOPNOTSUPP;
77d270a1d Guenter Roeck 2019-04-20  675                         break;
77d270a1d Guenter Roeck 2019-04-20  676                 }
77d270a1d Guenter Roeck 2019-04-20  677                 break;
77d270a1d Guenter Roeck 2019-04-20  678         default:
77d270a1d Guenter Roeck 2019-04-20  679                 ret = -EOPNOTSUPP;
77d270a1d Guenter Roeck 2019-04-20  680                 break;
77d270a1d Guenter Roeck 2019-04-20  681         }
77d270a1d Guenter Roeck 2019-04-20  682
77d270a1d Guenter Roeck 2019-04-20  683  error:
77d270a1d Guenter Roeck 2019-04-20  684         
mutex_unlock(&data->update_lock);
77d270a1d Guenter Roeck 2019-04-20  685         return ret;
77d270a1d Guenter Roeck 2019-04-20  686  }
77d270a1d Guenter Roeck 2019-04-20  687

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Reply via email to