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
next 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.