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: <202504211900.1fwfyPp3-lkp@intel.com>
Date: Mon, 21 Apr 2025 19:34:23 +0800
From: kernel test robot <lkp@...el.com>
To: xiaopeitux@...mail.com, linux-kernel@...r.kernel.org,
	f.fangjian@...wei.com, robh@...nel.org, john.g.garry@...cle.com,
	andriy.shevchenko@...ux.intel.com, xuwei5@...ilicon.com
Cc: oe-kbuild-all@...ts.linux.dev, Pei Xiao <xiaopei01@...inos.cn>
Subject: Re: [PATCH 1/2] bus: hisi_lpc: remove unused head file in hisi_lpc.c

Hi,

kernel test robot noticed the following build errors:

[auto build test ERROR on akpm-mm/mm-nonmm-unstable]
[also build test ERROR on linus/master v6.15-rc2 next-20250417]
[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/xiaopeitux-foxmail-com/logic_pio-Add-detailed-comments-for-find_io_range-and-logic_pio_trans_cpuaddr/20250418-171121
base:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-nonmm-unstable
patch link:    https://lore.kernel.org/r/tencent_8024B8D7E209E31C8E2B5AC411B70C551106%40qq.com
patch subject: [PATCH 1/2] bus: hisi_lpc: remove unused head file in hisi_lpc.c
config: sparc-allmodconfig (https://download.01.org/0day-ci/archive/20250421/202504211900.1fwfyPp3-lkp@intel.com/config)
compiler: sparc64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250421/202504211900.1fwfyPp3-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/202504211900.1fwfyPp3-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/bus/hisi_lpc.c: In function 'wait_lpc_idle':
>> drivers/bus/hisi_lpc.c:78:26: error: implicit declaration of function 'readl' [-Wimplicit-function-declaration]
      78 |                 status = readl(mbase + LPC_REG_OP_STATUS);
         |                          ^~~~~
   drivers/bus/hisi_lpc.c: In function 'hisi_lpc_target_in':
>> drivers/bus/hisi_lpc.c:119:9: error: implicit declaration of function 'writel_relaxed' [-Wimplicit-function-declaration]
     119 |         writel_relaxed(opcnt, lpcdev->membase + LPC_REG_OP_LEN);
         |         ^~~~~~~~~~~~~~
>> drivers/bus/hisi_lpc.c:123:9: error: implicit declaration of function 'writel' [-Wimplicit-function-declaration]
     123 |         writel(LPC_REG_STARTUP_SIGNAL_START,
         |         ^~~~~~
>> drivers/bus/hisi_lpc.c:133:9: error: implicit declaration of function 'readsb' [-Wimplicit-function-declaration]
     133 |         readsb(lpcdev->membase + LPC_REG_RDATA, buf, opcnt);
         |         ^~~~~~
   drivers/bus/hisi_lpc.c: In function 'hisi_lpc_target_out':
>> drivers/bus/hisi_lpc.c:176:9: error: implicit declaration of function 'writesb' [-Wimplicit-function-declaration]
     176 |         writesb(lpcdev->membase + LPC_REG_WDATA, buf, opcnt);
         |         ^~~~~~~


vim +/readl +78 drivers/bus/hisi_lpc.c

adf38bb0b5956ab Zhichang Yuan   2018-03-21   72  
663accf1872b22c John Garry      2019-11-05   73  static int wait_lpc_idle(void __iomem *mbase, unsigned int waitcnt)
adf38bb0b5956ab Zhichang Yuan   2018-03-21   74  {
adf38bb0b5956ab Zhichang Yuan   2018-03-21   75  	u32 status;
adf38bb0b5956ab Zhichang Yuan   2018-03-21   76  
adf38bb0b5956ab Zhichang Yuan   2018-03-21   77  	do {
adf38bb0b5956ab Zhichang Yuan   2018-03-21  @78  		status = readl(mbase + LPC_REG_OP_STATUS);
adf38bb0b5956ab Zhichang Yuan   2018-03-21   79  		if (status & LPC_REG_OP_STATUS_IDLE)
adf38bb0b5956ab Zhichang Yuan   2018-03-21   80  			return (status & LPC_REG_OP_STATUS_FINISHED) ? 0 : -EIO;
adf38bb0b5956ab Zhichang Yuan   2018-03-21   81  		ndelay(LPC_NSEC_PERWAIT);
adf38bb0b5956ab Zhichang Yuan   2018-03-21   82  	} while (--waitcnt);
adf38bb0b5956ab Zhichang Yuan   2018-03-21   83  
5e3e70b8e1ae983 Andy Shevchenko 2022-09-05   84  	return -ETIMEDOUT;
adf38bb0b5956ab Zhichang Yuan   2018-03-21   85  }
adf38bb0b5956ab Zhichang Yuan   2018-03-21   86  
adf38bb0b5956ab Zhichang Yuan   2018-03-21   87  /*
adf38bb0b5956ab Zhichang Yuan   2018-03-21   88   * hisi_lpc_target_in - trigger a series of LPC cycles for read operation
adf38bb0b5956ab Zhichang Yuan   2018-03-21   89   * @lpcdev: pointer to hisi lpc device
adf38bb0b5956ab Zhichang Yuan   2018-03-21   90   * @para: some parameters used to control the lpc I/O operations
adf38bb0b5956ab Zhichang Yuan   2018-03-21   91   * @addr: the lpc I/O target port address
adf38bb0b5956ab Zhichang Yuan   2018-03-21   92   * @buf: where the read back data is stored
adf38bb0b5956ab Zhichang Yuan   2018-03-21   93   * @opcnt: how many I/O operations required, i.e. data width
adf38bb0b5956ab Zhichang Yuan   2018-03-21   94   *
adf38bb0b5956ab Zhichang Yuan   2018-03-21   95   * Returns 0 on success, non-zero on fail.
adf38bb0b5956ab Zhichang Yuan   2018-03-21   96   */
adf38bb0b5956ab Zhichang Yuan   2018-03-21   97  static int hisi_lpc_target_in(struct hisi_lpc_dev *lpcdev,
adf38bb0b5956ab Zhichang Yuan   2018-03-21   98  			      struct lpc_cycle_para *para, unsigned long addr,
adf38bb0b5956ab Zhichang Yuan   2018-03-21   99  			      unsigned char *buf, unsigned long opcnt)
adf38bb0b5956ab Zhichang Yuan   2018-03-21  100  {
adf38bb0b5956ab Zhichang Yuan   2018-03-21  101  	unsigned int cmd_word;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  102  	unsigned int waitcnt;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  103  	unsigned long flags;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  104  	int ret;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  105  
adf38bb0b5956ab Zhichang Yuan   2018-03-21  106  	if (!buf || !opcnt || !para || !para->csize || !lpcdev)
adf38bb0b5956ab Zhichang Yuan   2018-03-21  107  		return -EINVAL;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  108  
adf38bb0b5956ab Zhichang Yuan   2018-03-21  109  	cmd_word = 0; /* IO mode, Read */
adf38bb0b5956ab Zhichang Yuan   2018-03-21  110  	waitcnt = LPC_PEROP_WAITCNT;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  111  	if (!(para->opflags & FG_INCRADDR_LPC)) {
adf38bb0b5956ab Zhichang Yuan   2018-03-21  112  		cmd_word |= LPC_REG_CMD_SAMEADDR;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  113  		waitcnt = LPC_MAX_WAITCNT;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  114  	}
adf38bb0b5956ab Zhichang Yuan   2018-03-21  115  
adf38bb0b5956ab Zhichang Yuan   2018-03-21  116  	/* whole operation must be atomic */
adf38bb0b5956ab Zhichang Yuan   2018-03-21  117  	spin_lock_irqsave(&lpcdev->cycle_lock, flags);
adf38bb0b5956ab Zhichang Yuan   2018-03-21  118  
adf38bb0b5956ab Zhichang Yuan   2018-03-21 @119  	writel_relaxed(opcnt, lpcdev->membase + LPC_REG_OP_LEN);
adf38bb0b5956ab Zhichang Yuan   2018-03-21  120  	writel_relaxed(cmd_word, lpcdev->membase + LPC_REG_CMD);
adf38bb0b5956ab Zhichang Yuan   2018-03-21  121  	writel_relaxed(addr, lpcdev->membase + LPC_REG_ADDR);
adf38bb0b5956ab Zhichang Yuan   2018-03-21  122  
adf38bb0b5956ab Zhichang Yuan   2018-03-21 @123  	writel(LPC_REG_STARTUP_SIGNAL_START,
adf38bb0b5956ab Zhichang Yuan   2018-03-21  124  	       lpcdev->membase + LPC_REG_STARTUP_SIGNAL);
adf38bb0b5956ab Zhichang Yuan   2018-03-21  125  
adf38bb0b5956ab Zhichang Yuan   2018-03-21  126  	/* whether the operation is finished */
adf38bb0b5956ab Zhichang Yuan   2018-03-21  127  	ret = wait_lpc_idle(lpcdev->membase, waitcnt);
adf38bb0b5956ab Zhichang Yuan   2018-03-21  128  	if (ret) {
adf38bb0b5956ab Zhichang Yuan   2018-03-21  129  		spin_unlock_irqrestore(&lpcdev->cycle_lock, flags);
adf38bb0b5956ab Zhichang Yuan   2018-03-21  130  		return ret;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  131  	}
adf38bb0b5956ab Zhichang Yuan   2018-03-21  132  
adf38bb0b5956ab Zhichang Yuan   2018-03-21 @133  	readsb(lpcdev->membase + LPC_REG_RDATA, buf, opcnt);
adf38bb0b5956ab Zhichang Yuan   2018-03-21  134  
adf38bb0b5956ab Zhichang Yuan   2018-03-21  135  	spin_unlock_irqrestore(&lpcdev->cycle_lock, flags);
adf38bb0b5956ab Zhichang Yuan   2018-03-21  136  
adf38bb0b5956ab Zhichang Yuan   2018-03-21  137  	return 0;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  138  }
adf38bb0b5956ab Zhichang Yuan   2018-03-21  139  
adf38bb0b5956ab Zhichang Yuan   2018-03-21  140  /*
adf38bb0b5956ab Zhichang Yuan   2018-03-21  141   * hisi_lpc_target_out - trigger a series of LPC cycles for write operation
adf38bb0b5956ab Zhichang Yuan   2018-03-21  142   * @lpcdev: pointer to hisi lpc device
adf38bb0b5956ab Zhichang Yuan   2018-03-21  143   * @para: some parameters used to control the lpc I/O operations
adf38bb0b5956ab Zhichang Yuan   2018-03-21  144   * @addr: the lpc I/O target port address
adf38bb0b5956ab Zhichang Yuan   2018-03-21  145   * @buf: where the data to be written is stored
adf38bb0b5956ab Zhichang Yuan   2018-03-21  146   * @opcnt: how many I/O operations required, i.e. data width
adf38bb0b5956ab Zhichang Yuan   2018-03-21  147   *
adf38bb0b5956ab Zhichang Yuan   2018-03-21  148   * Returns 0 on success, non-zero on fail.
adf38bb0b5956ab Zhichang Yuan   2018-03-21  149   */
adf38bb0b5956ab Zhichang Yuan   2018-03-21  150  static int hisi_lpc_target_out(struct hisi_lpc_dev *lpcdev,
adf38bb0b5956ab Zhichang Yuan   2018-03-21  151  			       struct lpc_cycle_para *para, unsigned long addr,
adf38bb0b5956ab Zhichang Yuan   2018-03-21  152  			       const unsigned char *buf, unsigned long opcnt)
adf38bb0b5956ab Zhichang Yuan   2018-03-21  153  {
adf38bb0b5956ab Zhichang Yuan   2018-03-21  154  	unsigned int waitcnt;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  155  	unsigned long flags;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  156  	u32 cmd_word;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  157  	int ret;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  158  
adf38bb0b5956ab Zhichang Yuan   2018-03-21  159  	if (!buf || !opcnt || !para || !lpcdev)
adf38bb0b5956ab Zhichang Yuan   2018-03-21  160  		return -EINVAL;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  161  
adf38bb0b5956ab Zhichang Yuan   2018-03-21  162  	/* default is increasing address */
adf38bb0b5956ab Zhichang Yuan   2018-03-21  163  	cmd_word = LPC_REG_CMD_OP; /* IO mode, write */
adf38bb0b5956ab Zhichang Yuan   2018-03-21  164  	waitcnt = LPC_PEROP_WAITCNT;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  165  	if (!(para->opflags & FG_INCRADDR_LPC)) {
adf38bb0b5956ab Zhichang Yuan   2018-03-21  166  		cmd_word |= LPC_REG_CMD_SAMEADDR;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  167  		waitcnt = LPC_MAX_WAITCNT;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  168  	}
adf38bb0b5956ab Zhichang Yuan   2018-03-21  169  
adf38bb0b5956ab Zhichang Yuan   2018-03-21  170  	spin_lock_irqsave(&lpcdev->cycle_lock, flags);
adf38bb0b5956ab Zhichang Yuan   2018-03-21  171  
adf38bb0b5956ab Zhichang Yuan   2018-03-21  172  	writel_relaxed(opcnt, lpcdev->membase + LPC_REG_OP_LEN);
adf38bb0b5956ab Zhichang Yuan   2018-03-21  173  	writel_relaxed(cmd_word, lpcdev->membase + LPC_REG_CMD);
adf38bb0b5956ab Zhichang Yuan   2018-03-21  174  	writel_relaxed(addr, lpcdev->membase + LPC_REG_ADDR);
adf38bb0b5956ab Zhichang Yuan   2018-03-21  175  
adf38bb0b5956ab Zhichang Yuan   2018-03-21 @176  	writesb(lpcdev->membase + LPC_REG_WDATA, buf, opcnt);
adf38bb0b5956ab Zhichang Yuan   2018-03-21  177  
adf38bb0b5956ab Zhichang Yuan   2018-03-21  178  	writel(LPC_REG_STARTUP_SIGNAL_START,
adf38bb0b5956ab Zhichang Yuan   2018-03-21  179  	       lpcdev->membase + LPC_REG_STARTUP_SIGNAL);
adf38bb0b5956ab Zhichang Yuan   2018-03-21  180  
adf38bb0b5956ab Zhichang Yuan   2018-03-21  181  	/* whether the operation is finished */
adf38bb0b5956ab Zhichang Yuan   2018-03-21  182  	ret = wait_lpc_idle(lpcdev->membase, waitcnt);
adf38bb0b5956ab Zhichang Yuan   2018-03-21  183  
adf38bb0b5956ab Zhichang Yuan   2018-03-21  184  	spin_unlock_irqrestore(&lpcdev->cycle_lock, flags);
adf38bb0b5956ab Zhichang Yuan   2018-03-21  185  
adf38bb0b5956ab Zhichang Yuan   2018-03-21  186  	return ret;
adf38bb0b5956ab Zhichang Yuan   2018-03-21  187  }
adf38bb0b5956ab Zhichang Yuan   2018-03-21  188  

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