All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.