Re: [PATCH v6 4/7] hisi_ptt: Add tune function support for HiSilicon PCIe Tune and Trace device

From: Yicong Yang
Date: Thu Apr 07 2022 - 04:42:46 EST


On 2022/4/7 12:28, kernel test robot wrote:
> Hi Yicong,
>
> I love your patch! Perhaps something to improve:
>
> [auto build test WARNING on joro-iommu/next]
> [also build test WARNING on linus/master linux/master v5.18-rc1 next-20220406]
> [cannot apply to tip/perf/core]
> [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]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Yicong-Yang/Add-support-for-HiSilicon-PCIe-Tune-and-Trace-device/20220406-200044
> base: https://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git next
> config: alpha-allyesconfig (https://download.01.org/0day-ci/archive/20220407/202204071201.AcePULOR-lkp@xxxxxxxxx/config)
> compiler: alpha-linux-gcc (GCC) 11.2.0
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # https://github.com/intel-lab-lkp/linux/commit/9400668b70cbcd5ec74a52f043c3a333b80135f8
> git remote add linux-review https://github.com/intel-lab-lkp/linux
> git fetch --no-tags linux-review Yicong-Yang/Add-support-for-HiSilicon-PCIe-Tune-and-Trace-device/20220406-200044
> git checkout 9400668b70cbcd5ec74a52f043c3a333b80135f8
> # save the config file to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=alpha SHELL=/bin/bash drivers/hwtracing/ptt/
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>
> All warnings (new ones prefixed by >>):
>
> drivers/hwtracing/ptt/hisi_ptt.c: In function 'hisi_ptt_tune_data_get':
>>> drivers/hwtracing/ptt/hisi_ptt.c:46:16: warning: conversion from 'long unsigned int' to 'u32' {aka 'unsigned int'} changes value from '18446744073709551615' to '4294967295' [-Woverflow]
> 46 | writel(~0UL, hisi_ptt->iobase + HISI_PTT_TUNING_DATA);
> | ^~~~

Thanks for the report. using of ~0U will fix this.

> drivers/hwtracing/ptt/hisi_ptt.c: At top level:
> drivers/hwtracing/ptt/hisi_ptt.c:1131:6: warning: no previous prototype for 'hisi_ptt_remove' [-Wmissing-prototypes]
> 1131 | void hisi_ptt_remove(struct pci_dev *pdev)
> | ^~~~~~~~~~~~~~~
>

for here I missed the static identifier. will fix. thanks.

>
> vim +46 drivers/hwtracing/ptt/hisi_ptt.c
>
> 33
> 34 static int hisi_ptt_tune_data_get(struct hisi_ptt *hisi_ptt,
> 35 u32 event, u16 *data)
> 36 {
> 37 u32 reg;
> 38
> 39 reg = readl(hisi_ptt->iobase + HISI_PTT_TUNING_CTRL);
> 40 reg &= ~(HISI_PTT_TUNING_CTRL_CODE | HISI_PTT_TUNING_CTRL_SUB);
> 41 reg |= FIELD_PREP(HISI_PTT_TUNING_CTRL_CODE | HISI_PTT_TUNING_CTRL_SUB,
> 42 event);
> 43 writel(reg, hisi_ptt->iobase + HISI_PTT_TUNING_CTRL);
> 44
> 45 /* Write all 1 to indicates it's the read process */
> > 46 writel(~0UL, hisi_ptt->iobase + HISI_PTT_TUNING_DATA);
> 47
> 48 if (!hisi_ptt_wait_tuning_finish(hisi_ptt))
> 49 return -ETIMEDOUT;
> 50
> 51 reg = readl(hisi_ptt->iobase + HISI_PTT_TUNING_DATA);
> 52 reg &= HISI_PTT_TUNING_DATA_VAL_MASK;
> 53 *data = FIELD_GET(HISI_PTT_TUNING_DATA_VAL_MASK, reg);
> 54
> 55 return 0;
> 56 }
> 57
>