From: kernel test robot <lkp@intel.com>
To: Vincent Mailhol <mailhol@kernel.org>,
Marc Kleine-Budde <mkl@pengutronix.de>,
Oliver Hartkopp <socketcan@hartkopp.net>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
"Vincent Mailhol" <mailhol@kernel.org>,
"Stéphane Grosjean" <stephane.grosjean@hms-networks.com>,
"Robert Nawrath" <mbro1689@gmail.com>,
"Minh Le" <minh.le.aj@renesas.com>,
"Duy Nguyen" <duy.nguyen.rh@renesas.com>,
linux-can@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 11/21] can: netlink: add can_dtb_changelink()
Date: Fri, 5 Sep 2025 04:29:17 +0800 [thread overview]
Message-ID: <202509050404.ZLQknagH-lkp@intel.com> (raw)
In-Reply-To: <20250903-canxl-netlink-prep-v1-11-904bd6037cd9@kernel.org>
Hi Vincent,
kernel test robot noticed the following build warnings:
[auto build test WARNING on 2fd4161d0d2547650d9559d57fc67b4e0a26a9e3]
url: https://github.com/intel-lab-lkp/linux/commits/Vincent-Mailhol/can-dev-move-struct-data_bittiming_params-to-linux-can-bittiming-h/20250903-170807
base: 2fd4161d0d2547650d9559d57fc67b4e0a26a9e3
patch link: https://lore.kernel.org/r/20250903-canxl-netlink-prep-v1-11-904bd6037cd9%40kernel.org
patch subject: [PATCH 11/21] can: netlink: add can_dtb_changelink()
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20250905/202509050404.ZLQknagH-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250905/202509050404.ZLQknagH-lkp@intel.com/reproduce)
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>
| Closes: https://lore.kernel.org/oe-kbuild-all/202509050404.ZLQknagH-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/net/can/dev/netlink.c:111:6: warning: variable 'is_on' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
111 | if (ifla_can_data_bittiming == IFLA_CAN_DATA_BITTIMING) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/can/dev/netlink.c:119:6: note: uninitialized use occurs here
119 | if (is_on) {
| ^~~~~
drivers/net/can/dev/netlink.c:111:2: note: remove the 'if' if its condition is always true
111 | if (ifla_can_data_bittiming == IFLA_CAN_DATA_BITTIMING) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
112 | data_tdc = data[IFLA_CAN_TDC];
113 | tdc_flags = flags & CAN_CTRLMODE_FD_TDC_MASK;
114 | is_on = flags & CAN_CTRLMODE_FD;
115 | } else {
| ~~~~~~
116 | WARN_ON(1); /* Place holder for CAN XL */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
117 | }
| ~
drivers/net/can/dev/netlink.c:108:12: note: initialize the variable 'is_on' to silence this warning
108 | bool is_on;
| ^
| = 0
>> drivers/net/can/dev/netlink.c:227:6: warning: variable 'data_bittiming' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
227 | if (fd) {
| ^~
drivers/net/can/dev/netlink.c:236:7: note: uninitialized use occurs here
236 | if (!data_bittiming)
| ^~~~~~~~~~~~~~
drivers/net/can/dev/netlink.c:227:2: note: remove the 'if' if its condition is always true
227 | if (fd) {
| ^~~~~~~
228 | data_bittiming = data[IFLA_CAN_DATA_BITTIMING];
229 | data_tdc = data[IFLA_CAN_TDC];
230 | dbt_params = &priv->fd;
231 | tdc_mask = CAN_CTRLMODE_FD_TDC_MASK;
232 | } else {
| ~~~~~~
233 | WARN_ON(1); /* Place holder for CAN XL */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
234 | }
| ~
drivers/net/can/dev/netlink.c:219:31: note: initialize the variable 'data_bittiming' to silence this warning
219 | struct nlattr *data_bittiming, *data_tdc;
| ^
| = NULL
2 warnings generated.
vim +227 drivers/net/can/dev/netlink.c
215
216 static int can_dbt_changelink(struct net_device *dev, struct nlattr *data[],
217 bool fd, struct netlink_ext_ack *extack)
218 {
219 struct nlattr *data_bittiming, *data_tdc;
220 struct can_priv *priv = netdev_priv(dev);
221 struct data_bittiming_params *dbt_params;
222 struct can_bittiming dbt;
223 bool need_tdc_calc = false;
224 u32 tdc_mask;
225 int err;
226
> 227 if (fd) {
228 data_bittiming = data[IFLA_CAN_DATA_BITTIMING];
229 data_tdc = data[IFLA_CAN_TDC];
230 dbt_params = &priv->fd;
231 tdc_mask = CAN_CTRLMODE_FD_TDC_MASK;
232 } else {
233 WARN_ON(1); /* Place holder for CAN XL */
234 }
235
236 if (!data_bittiming)
237 return 0;
238
239 /* Do not allow changing bittiming while running */
240 if (dev->flags & IFF_UP)
241 return -EBUSY;
242
243 /* Calculate bittiming parameters based on data_bittiming_const
244 * if set, otherwise pass bitrate directly via do_set_bitrate().
245 * Bail out if neither is given.
246 */
247 if (!dbt_params->data_bittiming_const && !dbt_params->do_set_data_bittiming &&
248 !dbt_params->data_bitrate_const)
249 return -EOPNOTSUPP;
250
251 memcpy(&dbt, nla_data(data_bittiming), sizeof(dbt));
252 err = can_get_bittiming(dev, &dbt, dbt_params->data_bittiming_const,
253 dbt_params->data_bitrate_const,
254 dbt_params->data_bitrate_const_cnt, extack);
255 if (err)
256 return err;
257
258 if (priv->bitrate_max && dbt.bitrate > priv->bitrate_max) {
259 NL_SET_ERR_MSG_FMT(extack,
260 "CAN data bitrate %u bps surpasses transceiver capabilities of %u bps",
261 dbt.bitrate, priv->bitrate_max);
262 return -EINVAL;
263 }
264
265 memset(&dbt_params->tdc, 0, sizeof(dbt_params->tdc));
266 if (data[IFLA_CAN_CTRLMODE]) {
267 struct can_ctrlmode *cm = nla_data(data[IFLA_CAN_CTRLMODE]);
268
269 need_tdc_calc = !(cm->mask & tdc_mask);
270 }
271 if (data_tdc) {
272 /* TDC parameters are provided: use them */
273 err = can_tdc_changelink(dbt_params, data_tdc, extack);
274 if (err) {
275 priv->ctrlmode &= ~tdc_mask;
276 return err;
277 }
278 } else if (need_tdc_calc) {
279 /* Neither of TDC parameters nor TDC flags are provided:
280 * do calculation
281 */
282 can_calc_tdco(&dbt_params->tdc, dbt_params->tdc_const, &dbt,
283 &priv->ctrlmode, priv->ctrlmode_supported);
284 } /* else: both CAN_CTRLMODE_TDC_{AUTO,MANUAL} are explicitly
285 * turned off. TDC is disabled: do nothing
286 */
287
288 memcpy(&dbt_params->data_bittiming, &dbt, sizeof(dbt));
289
290 if (dbt_params->do_set_data_bittiming) {
291 /* Finally, set the bit-timing registers */
292 err = dbt_params->do_set_data_bittiming(dev);
293 if (err)
294 return err;
295 }
296
297 return 0;
298 }
299
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2025-09-04 20:31 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-03 8:49 [PATCH 00/21] can: netlink: preparation before introduction of CAN XL step 2/2 Vincent Mailhol
2025-09-03 8:50 ` [PATCH 01/21] can: dev: move struct data_bittiming_params to linux/can/bittiming.h Vincent Mailhol
2025-09-03 8:50 ` [PATCH 02/21] can: dev: make can_get_relative_tdco() FD agnostic and move it to bittiming.h Vincent Mailhol
2025-09-03 8:50 ` [PATCH 03/21] can: netlink: document which symbols are FD specific Vincent Mailhol
2025-09-03 8:50 ` [PATCH 04/21] can: netlink: refactor can_validate_bittiming() Vincent Mailhol
2025-09-03 8:50 ` [PATCH 05/21] can: netlink: add can_validate_tdc() Vincent Mailhol
2025-09-03 8:50 ` [PATCH 06/21] can: netlink: add can_validate_databittiming() Vincent Mailhol
2025-09-04 18:46 ` kernel test robot
2025-09-05 14:55 ` Vincent Mailhol
2025-09-03 8:50 ` [PATCH 07/21] can: netlink: remove comment in can_validate() Vincent Mailhol
2025-09-04 6:51 ` Oliver Hartkopp
2025-09-04 9:48 ` Vincent Mailhol
2025-09-05 10:55 ` Oliver Hartkopp
2025-09-05 15:12 ` Vincent Mailhol
2025-09-03 8:50 ` [PATCH 08/21] can: netlink: refactor CAN_CTRLMODE_TDC_{AUTO,MANUAL} flag reset logic Vincent Mailhol
2025-09-03 8:50 ` [PATCH 09/21] can: netlink: remove useless check in can_tdc_changelink() Vincent Mailhol
2025-09-03 8:50 ` [PATCH 10/21] can: netlink: make can_tdc_changelink() FD agnostic Vincent Mailhol
2025-09-03 8:50 ` [PATCH 11/21] can: netlink: add can_dtb_changelink() Vincent Mailhol
2025-09-04 20:29 ` kernel test robot [this message]
2025-09-03 8:50 ` [PATCH 12/21] can: netlink: add can_ctrlmode_changelink() Vincent Mailhol
2025-09-03 8:50 ` [PATCH 13/21] can: netlink: make can_tdc_get_size() FD agnostic Vincent Mailhol
2025-09-03 8:50 ` [PATCH 14/21] can: netlink: add can_data_bittiming_get_size() Vincent Mailhol
2025-09-03 8:50 ` [PATCH 15/21] can: netlink: add can_bittiming_fill_info() Vincent Mailhol
2025-09-03 8:50 ` [PATCH 16/21] can: netlink: add can_bittiming_const_fill_info() Vincent Mailhol
2025-09-03 8:50 ` [PATCH 17/21] can: netlink: add can_bitrate_const_fill_info() Vincent Mailhol
2025-09-03 8:50 ` [PATCH 18/21] can: netlink: make can_tdc_fill_info() FD agnostic Vincent Mailhol
2025-09-04 22:01 ` kernel test robot
2025-09-03 8:50 ` [PATCH 19/21] can: calc_bittiming: make can_calc_tdco() " Vincent Mailhol
2025-09-03 8:50 ` [PATCH 20/21] can: dev: add can_get_ctrlmode_str() Vincent Mailhol
2025-09-03 8:50 ` [PATCH 21/21] can: netlink: add userland error messages Vincent Mailhol
2025-09-03 9:26 ` [PATCH 00/21] can: netlink: preparation before introduction of CAN XL step 2/2 Vincent Mailhol
2025-09-04 6:36 ` Oliver Hartkopp
2025-09-04 9:18 ` Vincent Mailhol
2025-09-05 11:11 ` Oliver Hartkopp
2025-09-05 14:58 ` Vincent Mailhol
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=202509050404.ZLQknagH-lkp@intel.com \
--to=lkp@intel.com \
--cc=duy.nguyen.rh@renesas.com \
--cc=linux-can@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=mailhol@kernel.org \
--cc=mbro1689@gmail.com \
--cc=minh.le.aj@renesas.com \
--cc=mkl@pengutronix.de \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=socketcan@hartkopp.net \
--cc=stephane.grosjean@hms-networks.com \
/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.