lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202512030728.3yMG8FZJ-lkp@intel.com>
Date: Wed, 3 Dec 2025 07:41:18 +0800
From: kernel test robot <lkp@...el.com>
To: adrianhoyin.ng@...era.com, alexandre.belloni@...tlin.com,
	Frank.Li@....com, linux-i3c@...ts.infradead.org,
	linux-kernel@...r.kernel.org
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
	adrianhoyin.ng@...era.com
Subject: Re: [PATCH v5 4/5] i3c: dw: use FIELD_PREP for device address table
 macros

Hi,

kernel test robot noticed the following build errors:

[auto build test ERROR on i3c/i3c/next]
[also build test ERROR on linus/master v6.18 next-20251202]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/adrianhoyin-ng-altera-com/i3c-add-sysfs-entry-for-Device-NACK-Retry-count/20251202-163150
base:   https://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux.git i3c/next
patch link:    https://lore.kernel.org/r/4c4791c018d61beb9ff85ca68c5bf48940d2398e.1764663888.git.adrianhoyin.ng%40altera.com
patch subject: [PATCH v5 4/5] i3c: dw: use FIELD_PREP for device address table macros
config: i386-buildonly-randconfig-005-20251203 (https://download.01.org/0day-ci/archive/20251203/202512030728.3yMG8FZJ-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/20251203/202512030728.3yMG8FZJ-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512030728.3yMG8FZJ-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/i3c/master/dw-i3c-master.c:862:10: error: call to undeclared function 'FIELD_PREP'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     862 |                 writel(DEV_ADDR_TABLE_DYNAMIC_ADDR(ret),
         |                        ^
   drivers/i3c/master/dw-i3c-master.c:214:40: note: expanded from macro 'DEV_ADDR_TABLE_DYNAMIC_ADDR'
     214 | #define DEV_ADDR_TABLE_DYNAMIC_ADDR(x) FIELD_PREP(DEV_ADDR_TABLE_DYNAMIC_MASK, x)
         |                                        ^
   drivers/i3c/master/dw-i3c-master.c:1017:9: error: call to undeclared function 'FIELD_PREP'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1017 |         writel(DEV_ADDR_TABLE_DYNAMIC_ADDR(dev->info.dyn_addr),
         |                ^
   drivers/i3c/master/dw-i3c-master.c:214:40: note: expanded from macro 'DEV_ADDR_TABLE_DYNAMIC_ADDR'
     214 | #define DEV_ADDR_TABLE_DYNAMIC_ADDR(x) FIELD_PREP(DEV_ADDR_TABLE_DYNAMIC_MASK, x)
         |                                        ^
   drivers/i3c/master/dw-i3c-master.c:1046:9: error: call to undeclared function 'FIELD_PREP'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1046 |         writel(DEV_ADDR_TABLE_DYNAMIC_ADDR(master->devs[pos].addr),
         |                ^
   drivers/i3c/master/dw-i3c-master.c:214:40: note: expanded from macro 'DEV_ADDR_TABLE_DYNAMIC_ADDR'
     214 | #define DEV_ADDR_TABLE_DYNAMIC_ADDR(x) FIELD_PREP(DEV_ADDR_TABLE_DYNAMIC_MASK, x)
         |                                        ^
   drivers/i3c/master/dw-i3c-master.c:1165:9: error: call to undeclared function 'FIELD_PREP'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1165 |                DEV_ADDR_TABLE_STATIC_ADDR(dev->addr),
         |                ^
   drivers/i3c/master/dw-i3c-master.c:215:39: note: expanded from macro 'DEV_ADDR_TABLE_STATIC_ADDR'
     215 | #define DEV_ADDR_TABLE_STATIC_ADDR(x) FIELD_PREP(DEV_ADDR_TABLE_STATIC_MASK, x)
         |                                       ^
   drivers/i3c/master/dw-i3c-master.c:1719:11: error: call to undeclared function 'FIELD_PREP'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1719 |                                DEV_ADDR_TABLE_STATIC_ADDR(master->devs[pos].addr);
         |                                ^
   drivers/i3c/master/dw-i3c-master.c:215:39: note: expanded from macro 'DEV_ADDR_TABLE_STATIC_ADDR'
     215 | #define DEV_ADDR_TABLE_STATIC_ADDR(x) FIELD_PREP(DEV_ADDR_TABLE_STATIC_MASK, x)
         |                                       ^
   5 errors generated.


vim +/FIELD_PREP +862 drivers/i3c/master/dw-i3c-master.c

1dd728f5d4d4b8 Vitor Soares 2018-11-13  826  
1dd728f5d4d4b8 Vitor Soares 2018-11-13  827  static int dw_i3c_master_daa(struct i3c_master_controller *m)
1dd728f5d4d4b8 Vitor Soares 2018-11-13  828  {
1dd728f5d4d4b8 Vitor Soares 2018-11-13  829  	struct dw_i3c_master *master = to_dw_i3c_master(m);
1dd728f5d4d4b8 Vitor Soares 2018-11-13  830  	struct dw_i3c_xfer *xfer;
1dd728f5d4d4b8 Vitor Soares 2018-11-13  831  	struct dw_i3c_cmd *cmd;
1dd728f5d4d4b8 Vitor Soares 2018-11-13  832  	u32 olddevs, newdevs;
e89cc14e96a99c Wolfram Sang 2025-01-07  833  	u8 last_addr = 0;
1dd728f5d4d4b8 Vitor Soares 2018-11-13  834  	int ret, pos;
1dd728f5d4d4b8 Vitor Soares 2018-11-13  835  
62fe9d06f5709c Aniket       2024-07-08  836  	ret = pm_runtime_resume_and_get(master->dev);
62fe9d06f5709c Aniket       2024-07-08  837  	if (ret < 0) {
62fe9d06f5709c Aniket       2024-07-08  838  		dev_err(master->dev,
62fe9d06f5709c Aniket       2024-07-08  839  			"<%s> cannot resume i3c bus master, err: %d\n",
62fe9d06f5709c Aniket       2024-07-08  840  			__func__, ret);
62fe9d06f5709c Aniket       2024-07-08  841  		return ret;
62fe9d06f5709c Aniket       2024-07-08  842  	}
62fe9d06f5709c Aniket       2024-07-08  843  
1dd728f5d4d4b8 Vitor Soares 2018-11-13  844  	olddevs = ~(master->free_pos);
1dd728f5d4d4b8 Vitor Soares 2018-11-13  845  
1dd728f5d4d4b8 Vitor Soares 2018-11-13  846  	/* Prepare DAT before launching DAA. */
1dd728f5d4d4b8 Vitor Soares 2018-11-13  847  	for (pos = 0; pos < master->maxdevs; pos++) {
1dd728f5d4d4b8 Vitor Soares 2018-11-13  848  		if (olddevs & BIT(pos))
1dd728f5d4d4b8 Vitor Soares 2018-11-13  849  			continue;
1dd728f5d4d4b8 Vitor Soares 2018-11-13  850  
1dd728f5d4d4b8 Vitor Soares 2018-11-13  851  		ret = i3c_master_get_free_addr(m, last_addr + 1);
62fe9d06f5709c Aniket       2024-07-08  852  		if (ret < 0) {
62fe9d06f5709c Aniket       2024-07-08  853  			ret = -ENOSPC;
62fe9d06f5709c Aniket       2024-07-08  854  			goto rpm_out;
62fe9d06f5709c Aniket       2024-07-08  855  		}
1dd728f5d4d4b8 Vitor Soares 2018-11-13  856  
e2d43101f61d6e Jeremy Kerr  2023-03-30  857  		master->devs[pos].addr = ret;
1dd728f5d4d4b8 Vitor Soares 2018-11-13  858  		last_addr = ret;
e89cc14e96a99c Wolfram Sang 2025-01-07  859  
e89cc14e96a99c Wolfram Sang 2025-01-07  860  		ret |= parity8(ret) ? 0 : BIT(7);
1dd728f5d4d4b8 Vitor Soares 2018-11-13  861  
1dd728f5d4d4b8 Vitor Soares 2018-11-13 @862  		writel(DEV_ADDR_TABLE_DYNAMIC_ADDR(ret),
1dd728f5d4d4b8 Vitor Soares 2018-11-13  863  		       master->regs +
1dd728f5d4d4b8 Vitor Soares 2018-11-13  864  		       DEV_ADDR_TABLE_LOC(master->datstartaddr, pos));
62fe9d06f5709c Aniket       2024-07-08  865  
62fe9d06f5709c Aniket       2024-07-08  866  		ret = 0;
1dd728f5d4d4b8 Vitor Soares 2018-11-13  867  	}
1dd728f5d4d4b8 Vitor Soares 2018-11-13  868  
1dd728f5d4d4b8 Vitor Soares 2018-11-13  869  	xfer = dw_i3c_master_alloc_xfer(master, 1);
62fe9d06f5709c Aniket       2024-07-08  870  	if (!xfer) {
62fe9d06f5709c Aniket       2024-07-08  871  		ret = -ENOMEM;
62fe9d06f5709c Aniket       2024-07-08  872  		goto rpm_out;
62fe9d06f5709c Aniket       2024-07-08  873  	}
1dd728f5d4d4b8 Vitor Soares 2018-11-13  874  
1dd728f5d4d4b8 Vitor Soares 2018-11-13  875  	pos = dw_i3c_master_get_free_pos(master);
13462ba1815db5 Tom Rix      2022-01-08  876  	if (pos < 0) {
13462ba1815db5 Tom Rix      2022-01-08  877  		dw_i3c_master_free_xfer(xfer);
62fe9d06f5709c Aniket       2024-07-08  878  		ret = pos;
62fe9d06f5709c Aniket       2024-07-08  879  		goto rpm_out;
13462ba1815db5 Tom Rix      2022-01-08  880  	}
1dd728f5d4d4b8 Vitor Soares 2018-11-13  881  	cmd = &xfer->cmds[0];
1dd728f5d4d4b8 Vitor Soares 2018-11-13  882  	cmd->cmd_hi = 0x1;
1dd728f5d4d4b8 Vitor Soares 2018-11-13  883  	cmd->cmd_lo = COMMAND_PORT_DEV_COUNT(master->maxdevs - pos) |
1dd728f5d4d4b8 Vitor Soares 2018-11-13  884  		      COMMAND_PORT_DEV_INDEX(pos) |
1dd728f5d4d4b8 Vitor Soares 2018-11-13  885  		      COMMAND_PORT_CMD(I3C_CCC_ENTDAA) |
1dd728f5d4d4b8 Vitor Soares 2018-11-13  886  		      COMMAND_PORT_ADDR_ASSGN_CMD |
1dd728f5d4d4b8 Vitor Soares 2018-11-13  887  		      COMMAND_PORT_TOC |
1dd728f5d4d4b8 Vitor Soares 2018-11-13  888  		      COMMAND_PORT_ROC;
1dd728f5d4d4b8 Vitor Soares 2018-11-13  889  
1dd728f5d4d4b8 Vitor Soares 2018-11-13  890  	dw_i3c_master_enqueue_xfer(master, xfer);
1dd728f5d4d4b8 Vitor Soares 2018-11-13  891  	if (!wait_for_completion_timeout(&xfer->comp, XFER_TIMEOUT))
1dd728f5d4d4b8 Vitor Soares 2018-11-13  892  		dw_i3c_master_dequeue_xfer(master, xfer);
1dd728f5d4d4b8 Vitor Soares 2018-11-13  893  
1dd728f5d4d4b8 Vitor Soares 2018-11-13  894  	newdevs = GENMASK(master->maxdevs - cmd->rx_len - 1, 0);
1dd728f5d4d4b8 Vitor Soares 2018-11-13  895  	newdevs &= ~olddevs;
1dd728f5d4d4b8 Vitor Soares 2018-11-13  896  
1dd728f5d4d4b8 Vitor Soares 2018-11-13  897  	for (pos = 0; pos < master->maxdevs; pos++) {
1dd728f5d4d4b8 Vitor Soares 2018-11-13  898  		if (newdevs & BIT(pos))
e2d43101f61d6e Jeremy Kerr  2023-03-30  899  			i3c_master_add_i3c_dev_locked(m, master->devs[pos].addr);
1dd728f5d4d4b8 Vitor Soares 2018-11-13  900  	}
1dd728f5d4d4b8 Vitor Soares 2018-11-13  901  
1dd728f5d4d4b8 Vitor Soares 2018-11-13  902  	dw_i3c_master_free_xfer(xfer);
1dd728f5d4d4b8 Vitor Soares 2018-11-13  903  
62fe9d06f5709c Aniket       2024-07-08  904  rpm_out:
62fe9d06f5709c Aniket       2024-07-08  905  	pm_runtime_put_autosuspend(master->dev);
62fe9d06f5709c Aniket       2024-07-08  906  	return ret;
1dd728f5d4d4b8 Vitor Soares 2018-11-13  907  }
1dd728f5d4d4b8 Vitor Soares 2018-11-13  908  

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ