All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: [asahilinux:bits/170-atcphy 5/16] drivers/phy/apple/atc.c:2156 atcphy_parse_new_tunable() warn: impossible condition '(offset > (~0)) => (0-u32max > u32max)'
Date: Wed, 19 Feb 2025 10:34:27 +0800	[thread overview]
Message-ID: <202502191004.5HCUpXEb-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Sven Peter <sven@svenpeter.dev>
CC: Janne Grunau <j@jannau.net>

tree:   https://github.com/AsahiLinux/linux bits/170-atcphy
head:   d9133ae802014bca51082790e834546f42d21231
commit: 6dcc9a0b2ca8beb8f112cdf4a06be2a70b83111b [5/16] WIP: phy: apple: Add Apple Type-C PHY
:::::: branch date: 11 days ago
:::::: commit date: 11 days ago
config: sparc-randconfig-r071-20250218 (https://download.01.org/0day-ci/archive/20250219/202502191004.5HCUpXEb-lkp@intel.com/config)
compiler: sparc64-linux-gcc (GCC) 14.2.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 <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202502191004.5HCUpXEb-lkp@intel.com/

New smatch warnings:
drivers/phy/apple/atc.c:2156 atcphy_parse_new_tunable() warn: impossible condition '(offset > (~0)) => (0-u32max > u32max)'
drivers/phy/apple/atc.c:2156 atcphy_parse_new_tunable() warn: impossible condition '(mask > (~0)) => (0-u32max > u32max)'
drivers/phy/apple/atc.c:2157 atcphy_parse_new_tunable() warn: impossible condition '(value > (~0)) => (0-u32max > u32max)'

Old smatch warnings:
drivers/phy/apple/atc.c:1609 atcphy_usb3_power_on() warn: inconsistent returns '&atcphy->lock'.

vim +2156 drivers/phy/apple/atc.c

6dcc9a0b2ca8be Sven Peter 2022-11-30  2113  
6dcc9a0b2ca8be Sven Peter 2022-11-30  2114  static int atcphy_parse_new_tunable(struct apple_atcphy *atcphy,
6dcc9a0b2ca8be Sven Peter 2022-11-30  2115  				    struct atcphy_tunable *tunable,
6dcc9a0b2ca8be Sven Peter 2022-11-30  2116  				    const char *name)
6dcc9a0b2ca8be Sven Peter 2022-11-30  2117  {
6dcc9a0b2ca8be Sven Peter 2022-11-30  2118  	struct property *prop;
6dcc9a0b2ca8be Sven Peter 2022-11-30  2119  	u64 *fdt_tunable;
6dcc9a0b2ca8be Sven Peter 2022-11-30  2120  	int ret, i;
6dcc9a0b2ca8be Sven Peter 2022-11-30  2121  
6dcc9a0b2ca8be Sven Peter 2022-11-30  2122  	prop = of_find_property(atcphy->np, name, NULL);
6dcc9a0b2ca8be Sven Peter 2022-11-30  2123  	if (!prop) {
6dcc9a0b2ca8be Sven Peter 2022-11-30  2124  		dev_err(atcphy->dev, "tunable %s not found\n", name);
6dcc9a0b2ca8be Sven Peter 2022-11-30  2125  		return -ENOENT;
6dcc9a0b2ca8be Sven Peter 2022-11-30  2126  	}
6dcc9a0b2ca8be Sven Peter 2022-11-30  2127  
6dcc9a0b2ca8be Sven Peter 2022-11-30  2128  	if (prop->length % (4 * sizeof(u64)))
6dcc9a0b2ca8be Sven Peter 2022-11-30  2129  		return -EINVAL;
6dcc9a0b2ca8be Sven Peter 2022-11-30  2130  
6dcc9a0b2ca8be Sven Peter 2022-11-30  2131  	fdt_tunable = kzalloc(prop->length, GFP_KERNEL);
6dcc9a0b2ca8be Sven Peter 2022-11-30  2132  	if (!fdt_tunable)
6dcc9a0b2ca8be Sven Peter 2022-11-30  2133  		return -ENOMEM;
6dcc9a0b2ca8be Sven Peter 2022-11-30  2134  
6dcc9a0b2ca8be Sven Peter 2022-11-30  2135  	tunable->sz = prop->length / (4 * sizeof(u64));
6dcc9a0b2ca8be Sven Peter 2022-11-30  2136  	ret = of_property_read_variable_u64_array(atcphy->np, name, fdt_tunable,
6dcc9a0b2ca8be Sven Peter 2022-11-30  2137  						  tunable->sz, tunable->sz);
6dcc9a0b2ca8be Sven Peter 2022-11-30  2138  	if (ret < 0)
6dcc9a0b2ca8be Sven Peter 2022-11-30  2139  		goto err_free_fdt;
6dcc9a0b2ca8be Sven Peter 2022-11-30  2140  
6dcc9a0b2ca8be Sven Peter 2022-11-30  2141  	tunable->values = devm_kcalloc(atcphy->dev, tunable->sz,
6dcc9a0b2ca8be Sven Peter 2022-11-30  2142  				       sizeof(*tunable->values), GFP_KERNEL);
6dcc9a0b2ca8be Sven Peter 2022-11-30  2143  	if (!tunable->values) {
6dcc9a0b2ca8be Sven Peter 2022-11-30  2144  		ret = -ENOMEM;
6dcc9a0b2ca8be Sven Peter 2022-11-30  2145  		goto err_free_fdt;
6dcc9a0b2ca8be Sven Peter 2022-11-30  2146  	}
6dcc9a0b2ca8be Sven Peter 2022-11-30  2147  
6dcc9a0b2ca8be Sven Peter 2022-11-30  2148  	for (i = 0; i < tunable->sz; ++i) {
6dcc9a0b2ca8be Sven Peter 2022-11-30  2149  		u32 offset, size, mask, value;
6dcc9a0b2ca8be Sven Peter 2022-11-30  2150  
6dcc9a0b2ca8be Sven Peter 2022-11-30  2151  		offset = fdt_tunable[4 * i];
6dcc9a0b2ca8be Sven Peter 2022-11-30  2152  		size = fdt_tunable[4 * i + 1];
6dcc9a0b2ca8be Sven Peter 2022-11-30  2153  		mask = fdt_tunable[4 * i + 2];
6dcc9a0b2ca8be Sven Peter 2022-11-30  2154  		value = fdt_tunable[4 * i + 3];
6dcc9a0b2ca8be Sven Peter 2022-11-30  2155  
6dcc9a0b2ca8be Sven Peter 2022-11-30 @2156  		if (offset > U32_MAX || size != 4 || mask > U32_MAX ||
6dcc9a0b2ca8be Sven Peter 2022-11-30 @2157  		    value > U32_MAX) {
6dcc9a0b2ca8be Sven Peter 2022-11-30  2158  			ret = -EINVAL;
6dcc9a0b2ca8be Sven Peter 2022-11-30  2159  			goto err_free_values;
6dcc9a0b2ca8be Sven Peter 2022-11-30  2160  		}
6dcc9a0b2ca8be Sven Peter 2022-11-30  2161  
6dcc9a0b2ca8be Sven Peter 2022-11-30  2162  		tunable->values[i].offset = offset;
6dcc9a0b2ca8be Sven Peter 2022-11-30  2163  		tunable->values[i].mask = mask;
6dcc9a0b2ca8be Sven Peter 2022-11-30  2164  		tunable->values[i].value = value;
6dcc9a0b2ca8be Sven Peter 2022-11-30  2165  	}
6dcc9a0b2ca8be Sven Peter 2022-11-30  2166  
6dcc9a0b2ca8be Sven Peter 2022-11-30  2167  	trace_atcphy_parsed_tunable(name, tunable);
6dcc9a0b2ca8be Sven Peter 2022-11-30  2168  	kfree(fdt_tunable);
6dcc9a0b2ca8be Sven Peter 2022-11-30  2169  
6dcc9a0b2ca8be Sven Peter 2022-11-30  2170  	BUG_ON(1);
6dcc9a0b2ca8be Sven Peter 2022-11-30  2171  	return 0;
6dcc9a0b2ca8be Sven Peter 2022-11-30  2172  
6dcc9a0b2ca8be Sven Peter 2022-11-30  2173  err_free_values:
6dcc9a0b2ca8be Sven Peter 2022-11-30  2174  	devm_kfree(atcphy->dev, tunable->values);
6dcc9a0b2ca8be Sven Peter 2022-11-30  2175  err_free_fdt:
6dcc9a0b2ca8be Sven Peter 2022-11-30  2176  	kfree(fdt_tunable);
6dcc9a0b2ca8be Sven Peter 2022-11-30  2177  	return ret;
6dcc9a0b2ca8be Sven Peter 2022-11-30  2178  }
6dcc9a0b2ca8be Sven Peter 2022-11-30  2179  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

             reply	other threads:[~2025-02-19  2:34 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-19  2:34 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-02-19  7:25 [asahilinux:bits/170-atcphy 5/16] drivers/phy/apple/atc.c:2156 atcphy_parse_new_tunable() warn: impossible condition '(offset > (~0)) => (0-u32max > u32max)' 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=202502191004.5HCUpXEb-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=error27@gmail.com \
    --cc=oe-kbuild@lists.linux.dev \
    /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.