From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [linux-next:master 5610/6048] drivers/hwmon/aht10.c:172 aht10_read_values() warn: inconsistent returns 'data->lock'.
Date: Thu, 11 Feb 2021 11:51:14 +0800 [thread overview]
Message-ID: <202102111107.clPlQONr-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 6166 bytes --]
CC: kbuild-all(a)lists.01.org
CC: Linux Memory Management List <linux-mm@kvack.org>
TO: "Johannes Cornelis Draaijer (datdenkikniet)" <jcdra1@gmail.com>
CC: Guenter Roeck <linux@roeck-us.net>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 59fa6a163ffabc1bf25c5e0e33899e268a96d3cc
commit: afd0187163980ca729a0cbafe1b664ea23e8fea6 [5610/6048] hwmon: Add AHT10 Temperature and Humidity Sensor Driver
:::::: branch date: 2 weeks ago
:::::: commit date: 2 weeks ago
config: x86_64-randconfig-m001-20210210 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/hwmon/aht10.c:172 aht10_read_values() warn: inconsistent returns 'data->lock'.
vim +172 drivers/hwmon/aht10.c
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 124)
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 125) /**
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 126) * aht10_read_values() - read and parse the raw data from the AHT10
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 127) * @aht10_data: the struct aht10_data to use for the lock
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 128) * Return: 0 if succesfull, 1 if not
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 129) */
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 130) static int aht10_read_values(struct aht10_data *data)
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 131) {
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 132) const u8 cmd_meas[] = {AHT10_CMD_MEAS, 0x33, 0x00};
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 133) u32 temp, hum;
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 134) int res;
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 135) u8 raw_data[AHT10_MEAS_SIZE];
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 136) struct i2c_client *client = data->client;
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 137)
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 138) mutex_lock(&data->lock);
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 139) if (aht10_polltime_expired(data)) {
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 140) res = i2c_master_send(client, cmd_meas, sizeof(cmd_meas));
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 141) if (res < 0)
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 142) return res;
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 143)
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 144) usleep_range(AHT10_MEAS_DELAY,
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 145) AHT10_MEAS_DELAY + AHT10_DELAY_EXTRA);
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 146)
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 147) res = i2c_master_recv(client, raw_data, AHT10_MEAS_SIZE);
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 148) if (res != AHT10_MEAS_SIZE) {
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 149) mutex_unlock(&data->lock);
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 150) if (res >= 0)
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 151) return -ENODATA;
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 152) else
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 153) return res;
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 154) }
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 155)
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 156) hum = ((u32)raw_data[1] << 12u) |
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 157) ((u32)raw_data[2] << 4u) |
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 158) ((raw_data[3] & 0xF0u) >> 4u);
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 159)
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 160) temp = ((u32)(raw_data[3] & 0x0Fu) << 16u) |
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 161) ((u32)raw_data[4] << 8u) |
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 162) raw_data[5];
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 163)
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 164) temp = ((temp * 625) >> 15u) * 10;
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 165) hum = ((hum * 625) >> 16u) * 10;
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 166)
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 167) data->temperature = (int)temp - 50000;
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 168) data->humidity = hum;
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 169) data->previous_poll_time = ktime_get_boottime();
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 170) }
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 171) mutex_unlock(&data->lock);
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 @172) return 0;
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 173) }
afd0187163980c Johannes Cornelis Draaijer (datdenkikniet 2021-01-07 174)
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 40293 bytes --]
next reply other threads:[~2021-02-11 3:51 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-11 3:51 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2021-02-11 11:51 [linux-next:master 5610/6048] drivers/hwmon/aht10.c:172 aht10_read_values() warn: inconsistent returns 'data->lock' Dan Carpenter
2021-02-11 11:51 ` Dan Carpenter
2021-02-11 11:51 ` Dan Carpenter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202102111107.clPlQONr-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.