From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 264FDC30658 for ; Wed, 3 Jul 2024 00:53:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A60F96B0092; Tue, 2 Jul 2024 20:53:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A0F746B0093; Tue, 2 Jul 2024 20:53:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8B0726B0096; Tue, 2 Jul 2024 20:53:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 6E3186B0092 for ; Tue, 2 Jul 2024 20:53:54 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 2A7A140614 for ; Wed, 3 Jul 2024 00:53:54 +0000 (UTC) X-FDA: 82296619188.18.2C31494 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.13]) by imf10.hostedemail.com (Postfix) with ESMTP id 6A640C0005 for ; Wed, 3 Jul 2024 00:53:51 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=MbAB2wSw; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf10.hostedemail.com: domain of lkp@intel.com designates 198.175.65.13 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1719968013; a=rsa-sha256; cv=none; b=5vdKvBie3buc6AYWJtIb6HGUs95DklJvNjNFUOCUhBLwb5nB8VI8b2sLMmVW7FJ9JbIFyq vtY+uGhpUHjOaB382MkfoTzLemBSSjbPij45F5MVgrNh1EKb1isxxFmm+enWvyJHzoX2MC bE07qYyvmhgMASTr+mQkX1/TCPTRV+M= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=MbAB2wSw; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf10.hostedemail.com: domain of lkp@intel.com designates 198.175.65.13 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1719968013; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=pFHRqEKsQVci2x5bF+M0lsuea84f+IHXGAJO4FOo8jI=; b=05/jFtXz4nnRk99w4RzFwqdU/8kFeDVRKu8C9NFV8NoAzDUMTQSqD9IlQcnDCj8tgdW1Og aLMmSyCn0Yw6fb7lriE8mKw5tvuM8plyX7WgG84zEf9dPhKnBffu5um5kVFOaJjGIa8n1n 3VLYomg99Y9x9eDqQSu/kYeKhErbUCc= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1719968032; x=1751504032; h=date:from:to:cc:subject:message-id:mime-version; bh=rbh5Aqm1mPNRbSGkmDVTxuB+JRTZ+AJAo6jo/a+m7gA=; b=MbAB2wSwI32x3jHS389qvL6x0UEjCUhZtGRLh6KTNISQwrctgcCL34Kz ptjqCyXW8HItKJqlbKNboK2jCTUcOGu02knGkw4mMc3BUQU1asw0WzAC8 cwUxJ39C6Uk2euDYzSuB987akj5En5O1aRXTKD0ZwrAu5yCvfEoRK3Rq0 WkXShdKU0vvYqOmuuvM3lVs8qmzTkiEdUVjd//sY8BSjx6/2pDY2ArIOm WY78oB0GV2sJbhSVGtMLK/rQhcVKmfkcVZ9bf5oMbDBbjS4ejuCrcZbsf K5tKagISLTCeNOuVvD8Gogem3F7J+1E9WGccmLRD4csLLhQ4oFlM1/re9 Q==; X-CSE-ConnectionGUID: rYRYnHTzQfiFuiJPoG4Dsg== X-CSE-MsgGUID: Yy1y4ruURXyiDDBSGK6aXQ== X-IronPort-AV: E=McAfee;i="6700,10204,11121"; a="28307163" X-IronPort-AV: E=Sophos;i="6.09,180,1716274800"; d="scan'208";a="28307163" Received: from orviesa007.jf.intel.com ([10.64.159.147]) by orvoesa105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 17:53:51 -0700 X-CSE-ConnectionGUID: B/74RDSfSbW9PThoOQaK+g== X-CSE-MsgGUID: NCgC8WA1SBu+hPQYLsNu8A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.09,180,1716274800"; d="scan'208";a="46728335" Received: from lkp-server01.sh.intel.com (HELO 68891e0c336b) ([10.239.97.150]) by orviesa007.jf.intel.com with ESMTP; 02 Jul 2024 17:53:49 -0700 Received: from kbuild by 68891e0c336b with local (Exim 4.96) (envelope-from ) id 1sOoFm-000P2l-1k; Wed, 03 Jul 2024 00:53:46 +0000 Date: Wed, 3 Jul 2024 08:53:24 +0800 From: kernel test robot To: Thomas =?iso-8859-1?Q?Wei=DFschuh?= Cc: oe-kbuild-all@lists.linux.dev, Linux Memory Management List , Tzung-Bi Shih Subject: [linux-next:master 9580/10049] drivers/power/supply/cros_charge-control.c:210 charge_behaviour_store() warn: unsigned 'behaviour' is never less than zero. Message-ID: <202407030856.WDIxlKzW-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 6A640C0005 X-Stat-Signature: 7qezhokypdeu1egj86bz1xziruhyizn6 X-Rspam-User: X-HE-Tag: 1719968031-119067 X-HE-Meta: U2FsdGVkX1/93Pq3OcZg2wlv448TnKEg8P5D6rkqPFluqGCUEad35i2fqp3xg6BP7zX91YE/9pxZ+aKL4H7z0yX0p993AmTAcz2C/t5rwI7ZmTMlyS9w+dro6lQfislNuoqdEOFM8abEFhm/av8BaJsxaDZdVKL72olC8l6bMetM9VijTYRiC7DsVls8ee3QHEzxyUpkoirRQ8Sa/qPSk92QSDTBvZ2dKPZremkcvYqQyH+BhfjJkJmdyy7tUdTCc16MjM1qwRDklTEjaFdQU/Zyo/TkwnEa+fcDj3fzA7uA9uN5MEkSUQrH2wKYGjS0uqSi+FPcZeQ0efnn4LVOQYAzkqWdoRr7cnR5MCdg1UGAHRwaWullRRjeKTbsvxlr/pFYBFxhQuJ9A9sB8nbhMeDGB0SJnR1EqxoIZVBNblHl8AuJufHB66jnlzau1l9AZg+38G5QaGcWNooGPWs6vDGCzCUKEB1wOUNXVqc6rfjaZKkNSmeiHbmVfUZ8n8CHwvhX86tUKpfkgLIXUGWILoi5tT6AwBn4c8tHuIoRjq9d4CqZjwtf/2j5R4ucn5fwzZV7VXOCfPZikNscPM3Gf4VH6lqGKe+u5d52bvd36qk7ubvV9j6D7yxyO2sBkMqXOUVF8VXe7g9NqBHDEF7We8ZJd6bEU0TsaBMHtqlZDNzLJZ4YUwBokQ1F9G7EIj2g4tKd9dgp5rBNAo5eAD3wkeL2w4cEZWxpQ6egB+Y7iZA+fnoziPd4m9EGbkXBWNlyerSE1yZ1IKbkAfvsOj2IW10jO+013rAk8vjGCzhp/H/gycsZj8Pqdy79gzMuV/QHEgbIud9Y6gXYzUpaOvU9IDzLMAPdLPKoJAk3d3BbMwikVpUPC2jLCB5CmWnEa16Aq7XYIYC/i4lSMwdotglKGpIeTaDIis5drzCPjwDr+URwHatk4vfsk5mXKnBnSHL6BpiKeFLWsLb9k1xv+Nd UnaeA6te n6MmH9Dt05CKpzDZVIY29tZfBex/MvTdpuCz3UzFy4r0OqXJm+G6xyUAHIbWl2Ba4S1iqngJaLFc2q+G0HFYyn1M3XoPI5+lUSDfLtBNEU4jl89wUIL2KFbda3MVkctksoDaW2B1PsN50oN8Ms5vQih82fkmyG4HJiZPqdkiR1q0oCVzc4PAxNAPfRsReXIjEh9uFGiZeJzWYQSOOE4IrZAPaHJmLVvQ2m0pIXkYrut9EjuNtnDJvA8dBwkUxcc0bYGosNrBC6EvvA6QFtyo5UXolRSzwmZF+3XbIIi7YhUuWi/XJvbHXxActxzj4KPi8DeSpcemp8OSOpoB07oQuXvZzny652Z7b8p5jIrHjhJs1x6LdY7jBjHKSlB8lZetWF//M X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 82e4255305c554b0bb18b7ccf2db86041b4c8b6e commit: c6ed48ef52599098498a8442fd60bea5bd8cd309 [9580/10049] power: supply: add ChromeOS EC based charge control driver config: x86_64-randconfig-161-20240703 (https://download.01.org/0day-ci/archive/20240703/202407030856.WDIxlKzW-lkp@intel.com/config) compiler: gcc-9 (Ubuntu 9.5.0-4ubuntu2) 9.5.0 If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot | Closes: https://lore.kernel.org/oe-kbuild-all/202407030856.WDIxlKzW-lkp@intel.com/ smatch warnings: drivers/power/supply/cros_charge-control.c:210 charge_behaviour_store() warn: unsigned 'behaviour' is never less than zero. drivers/power/supply/cros_charge-control.c:297 cros_chctl_probe() error: buffer overflow 'priv->attributes' 3 <= 3 vim +/behaviour +210 drivers/power/supply/cros_charge-control.c 200 201 static ssize_t charge_behaviour_store(struct device *dev, struct device_attribute *attr, 202 const char *buf, size_t count) 203 { 204 struct cros_chctl_priv *priv = cros_chctl_attr_to_priv(&attr->attr, 205 CROS_CHCTL_ATTR_CHARGE_BEHAVIOUR); 206 enum power_supply_charge_behaviour behaviour; 207 int ret; 208 209 behaviour = power_supply_charge_behaviour_parse(EC_CHARGE_CONTROL_BEHAVIOURS, buf); > 210 if (behaviour < 0) 211 return behaviour; 212 213 priv->current_behaviour = behaviour; 214 215 ret = cros_chctl_configure_ec(priv); 216 if (ret < 0) 217 return ret; 218 219 return count; 220 } 221 222 static umode_t cros_chtl_attr_is_visible(struct kobject *kobj, struct attribute *attr, int n) 223 { 224 struct cros_chctl_priv *priv = cros_chctl_attr_to_priv(attr, n); 225 226 if (priv->cmd_version < 2) { 227 if (n == CROS_CHCTL_ATTR_START_THRESHOLD) 228 return 0; 229 if (n == CROS_CHCTL_ATTR_END_THRESHOLD) 230 return 0; 231 } 232 233 return attr->mode; 234 } 235 236 static int cros_chctl_add_battery(struct power_supply *battery, struct acpi_battery_hook *hook) 237 { 238 struct cros_chctl_priv *priv = container_of(hook, struct cros_chctl_priv, battery_hook); 239 240 if (priv->hooked_battery) 241 return 0; 242 243 priv->hooked_battery = battery; 244 return device_add_group(&battery->dev, &priv->group); 245 } 246 247 static int cros_chctl_remove_battery(struct power_supply *battery, struct acpi_battery_hook *hook) 248 { 249 struct cros_chctl_priv *priv = container_of(hook, struct cros_chctl_priv, battery_hook); 250 251 if (priv->hooked_battery == battery) { 252 device_remove_group(&battery->dev, &priv->group); 253 priv->hooked_battery = NULL; 254 } 255 256 return 0; 257 } 258 259 static int cros_chctl_probe(struct platform_device *pdev) 260 { 261 struct device *dev = &pdev->dev; 262 struct cros_ec_dev *ec_dev = dev_get_drvdata(dev->parent); 263 struct cros_ec_device *cros_ec = ec_dev->ec_dev; 264 struct cros_chctl_priv *priv; 265 size_t i; 266 int ret; 267 268 priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); 269 if (!priv) 270 return -ENOMEM; 271 272 ret = cros_ec_get_cmd_versions(cros_ec, EC_CMD_CHARGE_CONTROL); 273 if (ret < 0) 274 return ret; 275 else if (ret & EC_VER_MASK(3)) 276 priv->cmd_version = 3; 277 else if (ret & EC_VER_MASK(2)) 278 priv->cmd_version = 2; 279 else if (ret & EC_VER_MASK(1)) 280 priv->cmd_version = 1; 281 else 282 return -ENODEV; 283 284 dev_dbg(dev, "Command version: %u\n", (unsigned int)priv->cmd_version); 285 286 priv->cros_ec = cros_ec; 287 priv->device_attrs[CROS_CHCTL_ATTR_START_THRESHOLD] = 288 (struct device_attribute)__ATTR_RW(charge_control_start_threshold); 289 priv->device_attrs[CROS_CHCTL_ATTR_END_THRESHOLD] = 290 (struct device_attribute)__ATTR_RW(charge_control_end_threshold); 291 priv->device_attrs[CROS_CHCTL_ATTR_CHARGE_BEHAVIOUR] = 292 (struct device_attribute)__ATTR_RW(charge_behaviour); 293 for (i = 0; i < _CROS_CHCTL_ATTR_COUNT; i++) { 294 sysfs_attr_init(&priv->device_attrs[i].attr); 295 priv->attributes[i] = &priv->device_attrs[i].attr; 296 } > 297 priv->attributes[_CROS_CHCTL_ATTR_COUNT] = NULL; 298 priv->group.is_visible = cros_chtl_attr_is_visible; 299 priv->group.attrs = priv->attributes; 300 301 priv->battery_hook.name = dev_name(dev); 302 priv->battery_hook.add_battery = cros_chctl_add_battery; 303 priv->battery_hook.remove_battery = cros_chctl_remove_battery; 304 305 priv->current_behaviour = POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO; 306 priv->current_start_threshold = 0; 307 priv->current_end_threshold = 100; 308 309 /* Bring EC into well-known state */ 310 ret = cros_chctl_configure_ec(priv); 311 if (ret < 0) 312 return ret; 313 314 return devm_battery_hook_register(dev, &priv->battery_hook); 315 } 316 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki