CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Fan Fei <[email protected]>
CC: Bjorn Helgaas <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   626b2dda7651a7c766108db4cdc0825db05b980d
commit: d5a4835b5ed05b1f14a00e0db9f2c91ae7d1ede6 PCI: mediatek-gen3: Rename 
mtk_pcie_port to mtk_gen3_pcie
date:   3 weeks ago
:::::: branch date: 13 hours ago
:::::: commit date: 3 weeks ago
config: riscv-randconfig-c006-20220125 
(https://download.01.org/0day-ci/archive/20220128/[email protected]/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
997e128e2a78f5a5434fc75997441ae1ee76f8a4)
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
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d5a4835b5ed05b1f14a00e0db9f2c91ae7d1ede6
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout d5a4835b5ed05b1f14a00e0db9f2c91ae7d1ede6
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv 
clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


clang-analyzer warnings: (new ones prefixed by >>)
                 ^
   include/linux/iopoll.h:156:2: note: expanded from macro 'readl_poll_timeout'
           readx_poll_timeout(readl, addr, val, cond, delay_us, timeout_us)
           ^
   include/linux/iopoll.h:121:2: note: expanded from macro 'readx_poll_timeout'
           read_poll_timeout(op, val, cond, sleep_us, timeout_us, false, addr)
           ^
   include/linux/iopoll.h:47:3: note: expanded from macro 'read_poll_timeout'
                   if (cond) \
                   ^
   drivers/pci/controller/pcie-mediatek-gen3.c:318:8: note:  Execution 
continues on line 318
           err = readl_poll_timeout(pcie->base + PCIE_LINK_STATUS_REG, val,
                 ^
   include/linux/iopoll.h:156:2: note: expanded from macro 'readl_poll_timeout'
           readx_poll_timeout(readl, addr, val, cond, delay_us, timeout_us)
           ^
   include/linux/iopoll.h:121:2: note: expanded from macro 'readx_poll_timeout'
           read_poll_timeout(op, val, cond, sleep_us, timeout_us, false, addr)
           ^
   include/linux/iopoll.h:48:4: note: expanded from macro 'read_poll_timeout'
                           break; \
                           ^
   drivers/pci/controller/pcie-mediatek-gen3.c:318:8: note: '?' condition is 
true
           err = readl_poll_timeout(pcie->base + PCIE_LINK_STATUS_REG, val,
                 ^
   include/linux/iopoll.h:156:2: note: expanded from macro 'readl_poll_timeout'
           readx_poll_timeout(readl, addr, val, cond, delay_us, timeout_us)
           ^
   include/linux/iopoll.h:121:2: note: expanded from macro 'readx_poll_timeout'
           read_poll_timeout(op, val, cond, sleep_us, timeout_us, false, addr)
           ^
   include/linux/iopoll.h:57:2: note: expanded from macro 'read_poll_timeout'
           (cond) ? 0 : -ETIMEDOUT; \
           ^
   drivers/pci/controller/pcie-mediatek-gen3.c:321:6: note: 'err' is 0
           if (err) {
               ^~~
   drivers/pci/controller/pcie-mediatek-gen3.c:321:2: note: Taking false branch
           if (err) {
           ^
   drivers/pci/controller/pcie-mediatek-gen3.c:330:2: note: Loop condition is 
true.  Entering loop body
           resource_list_for_each_entry(entry, &host->windows) {
           ^
   include/linux/resource_ext.h:64:2: note: expanded from macro 
'resource_list_for_each_entry'
           list_for_each_entry((entry), (list), node)
           ^
   include/linux/list.h:630:2: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
           ^
   drivers/pci/controller/pcie-mediatek-gen3.c:338:7: note: Assuming 'type' is 
equal to IORESOURCE_IO
                   if (type == IORESOURCE_IO) {
                       ^~~~~~~~~~~~~~~~~~~~~
   drivers/pci/controller/pcie-mediatek-gen3.c:338:3: note: Taking true branch
                   if (type == IORESOURCE_IO) {
                   ^
   drivers/pci/controller/pcie-mediatek-gen3.c:350:9: note: Calling 
'mtk_pcie_set_trans_table'
                   err = mtk_pcie_set_trans_table(pcie, cpu_addr, pci_addr, 
size,
                         
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/pci/controller/pcie-mediatek-gen3.c:219:6: note: 'num' is < 
PCIE_MAX_TRANS_TABLES
           if (num >= PCIE_MAX_TRANS_TABLES) {
               ^~~
   drivers/pci/controller/pcie-mediatek-gen3.c:219:2: note: Taking false branch
           if (num >= PCIE_MAX_TRANS_TABLES) {
           ^
   drivers/pci/controller/pcie-mediatek-gen3.c:228:2: note: Loop condition is 
false.  Exiting loop
           writel_relaxed(lower_32_bits(cpu_addr) | PCIE_ATR_SIZE(fls(size) - 
1),
           ^
   arch/riscv/include/asm/mmio.h:120:33: note: expanded from macro 
'writel_relaxed'
   #define writel_relaxed(v, c)    ({ __io_rbw(); writel_cpu((v), (c)); 
__io_raw(); })
                                      ^
   arch/riscv/include/asm/mmio.h:111:21: note: expanded from macro '__io_rbw'
   #define __io_rbw()              do {} while (0)
                                   ^
   drivers/pci/controller/pcie-mediatek-gen3.c:228:43: note: The result of the 
left shift is undefined because the left operand is negative
           writel_relaxed(lower_32_bits(cpu_addr) | PCIE_ATR_SIZE(fls(size) - 
1),
                                                    ^
   drivers/pci/controller/pcie-mediatek-gen3.c:92:18: note: expanded from macro 
'PCIE_ATR_SIZE'
           (((((size) - 1) << 1) & GENMASK(6, 1)) | PCIE_ATR_EN)
                           ^
   arch/riscv/include/asm/mmio.h:120:57: note: expanded from macro 
'writel_relaxed'
   #define writel_relaxed(v, c)    ({ __io_rbw(); writel_cpu((v), (c)); 
__io_raw(); })
                                                  ~~~~~~~~~~~~^~~~~~~~
   arch/riscv/include/asm/mmio.h:93:71: note: expanded from macro 'writel_cpu'
   #define writel_cpu(v, c)        ((void)__raw_writel((__force 
u32)cpu_to_le32(v), (c)))
                                                                    
~~~~~~~~~~~~^~
   include/uapi/linux/byteorder/little_endian.h:33:51: note: expanded from 
macro '__cpu_to_le32'
   #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
                                                     ^
   drivers/pci/controller/pcie-mediatek-gen3.c:340:4: warning: Value stored to 
'range_type' is never read [clang-analyzer-deadcode.DeadStores]
                           range_type = "IO";
                           ^            ~~~~
   drivers/pci/controller/pcie-mediatek-gen3.c:340:4: note: Value stored to 
'range_type' is never read
                           range_type = "IO";
                           ^            ~~~~
   drivers/pci/controller/pcie-mediatek-gen3.c:343:4: warning: Value stored to 
'range_type' is never read [clang-analyzer-deadcode.DeadStores]
                           range_type = "MEM";
                           ^            ~~~~~
   drivers/pci/controller/pcie-mediatek-gen3.c:343:4: note: Value stored to 
'range_type' is never read
                           range_type = "MEM";
                           ^            ~~~~~
>> drivers/pci/controller/pcie-mediatek-gen3.c:399:24: warning: Value stored to 
>> 'pcie' during its initialization is never read 
>> [clang-analyzer-deadcode.DeadStores]
           struct mtk_gen3_pcie *pcie = data->domain->host_data;
                                 ^~~~   ~~~~~~~~~~~~~~~~~~~~~~~
   drivers/pci/controller/pcie-mediatek-gen3.c:399:24: note: Value stored to 
'pcie' during its initialization is never read
           struct mtk_gen3_pcie *pcie = data->domain->host_data;
                                 ^~~~   ~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   5 warnings generated.
   drivers/gpu/drm/drm_debugfs.c:246:22: warning: Use of memory after it is 
freed [clang-analyzer-unix.Malloc]
                   list_for_each_safe(pos, q, &minor->debugfs_list) {
                                      ^
   include/linux/list.h:600:31: note: expanded from macro 'list_for_each_safe'
           for (pos = (head)->next, n = pos->next; pos != (head); \
                                        ^~~~~~~~~
   drivers/gpu/drm/drm_debugfs.c:245:14: note: Assuming 'i' is < 'count'
           for (i = 0; i < count; i++) {
                       ^~~~~~~~~
   drivers/gpu/drm/drm_debugfs.c:245:2: note: Loop condition is true.  Entering 
loop body
           for (i = 0; i < count; i++) {
           ^
   drivers/gpu/drm/drm_debugfs.c:246:3: note: Loop condition is true.  Entering 
loop body
                   list_for_each_safe(pos, q, &minor->debugfs_list) {
                   ^
   include/linux/list.h:600:2: note: expanded from macro 'list_for_each_safe'
           for (pos = (head)->next, n = pos->next; pos != (head); \
           ^
   drivers/gpu/drm/drm_debugfs.c:248:8: note: Assuming the condition is true
                           if (tmp->info_ent == &files[i]) {
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/drm_debugfs.c:248:4: note: Taking true branch
                           if (tmp->info_ent == &files[i]) {
                           ^
   drivers/gpu/drm/drm_debugfs.c:251:5: note: Memory is released
                                   kfree(tmp);
                                   ^~~~~~~~~~
   drivers/gpu/drm/drm_debugfs.c:246:3: note: Loop condition is false. 
Execution continues on line 245
                   list_for_each_safe(pos, q, &minor->debugfs_list) {
                   ^
   include/linux/list.h:600:2: note: expanded from macro 'list_for_each_safe'
           for (pos = (head)->next, n = pos->next; pos != (head); \
           ^
   drivers/gpu/drm/drm_debugfs.c:245:14: note: Assuming 'i' is < 'count'
           for (i = 0; i < count; i++) {
                       ^~~~~~~~~
   drivers/gpu/drm/drm_debugfs.c:245:2: note: Loop condition is true.  Entering 
loop body
           for (i = 0; i < count; i++) {
           ^
   drivers/gpu/drm/drm_debugfs.c:246:22: note: Use of memory after it is freed
                   list_for_each_safe(pos, q, &minor->debugfs_list) {
                                      ^
   include/linux/list.h:600:31: note: expanded from macro 'list_for_each_safe'
           for (pos = (head)->next, n = pos->next; pos != (head); \
                                        ^~~~~~~~~
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (3 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   drivers/phy/rockchip/phy-rockchip-inno-hdmi.c:624:16: warning: Value stored 
to 'tmdsclock' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           unsigned long tmdsclock = inno_hdmi_phy_get_tmdsclk(inno, rate);
                         ^~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/phy/rockchip/phy-rockchip-inno-hdmi.c:624:16: note: Value stored to 
'tmdsclock' during its initialization is never read
           unsigned long tmdsclock = inno_hdmi_phy_get_tmdsclk(inno, rate);
                         ^~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/phy/rockchip/phy-rockchip-inno-hdmi.c:742:3: warning: Value stored 
to 'no_c' is never read [clang-analyzer-deadcode.DeadStores]
                   no_c = 1 << no_c;
                   ^      ~~~~~~~~~
   drivers/phy/rockchip/phy-rockchip-inno-hdmi.c:742:3: note: Value stored to 
'no_c' is never read
                   no_c = 1 << no_c;
                   ^      ~~~~~~~~~
   drivers/phy/rockchip/phy-rockchip-inno-hdmi.c:778:16: warning: Value stored 
to 'tmdsclock' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           unsigned long tmdsclock = inno_hdmi_phy_get_tmdsclk(inno, rate);
                         ^~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/phy/rockchip/phy-rockchip-inno-hdmi.c:778:16: note: Value stored to 
'tmdsclock' during its initialization is never read
           unsigned long tmdsclock = inno_hdmi_phy_get_tmdsclk(inno, rate);
                         ^~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.

vim +/pcie +399 drivers/pci/controller/pcie-mediatek-gen3.c

1bdafba538be70 Jianjun Wang 2021-04-20  395  
1bdafba538be70 Jianjun Wang 2021-04-20  396  static void 
mtk_compose_msi_msg(struct irq_data *data, struct msi_msg *msg)
1bdafba538be70 Jianjun Wang 2021-04-20  397  {
1bdafba538be70 Jianjun Wang 2021-04-20  398     struct mtk_msi_set *msi_set = 
irq_data_get_irq_chip_data(data);
d5a4835b5ed05b Fan Fei      2021-12-22 @399     struct mtk_gen3_pcie *pcie = 
data->domain->host_data;
1bdafba538be70 Jianjun Wang 2021-04-20  400     unsigned long hwirq;
1bdafba538be70 Jianjun Wang 2021-04-20  401  
1bdafba538be70 Jianjun Wang 2021-04-20  402     hwirq = data->hwirq % 
PCIE_MSI_IRQS_PER_SET;
1bdafba538be70 Jianjun Wang 2021-04-20  403  
1bdafba538be70 Jianjun Wang 2021-04-20  404     msg->address_hi = 
upper_32_bits(msi_set->msg_addr);
1bdafba538be70 Jianjun Wang 2021-04-20  405     msg->address_lo = 
lower_32_bits(msi_set->msg_addr);
1bdafba538be70 Jianjun Wang 2021-04-20  406     msg->data = hwirq;
d5a4835b5ed05b Fan Fei      2021-12-22  407     dev_dbg(pcie->dev, "msi#%#lx 
address_hi %#x address_lo %#x data %d\n",
1bdafba538be70 Jianjun Wang 2021-04-20  408             hwirq, msg->address_hi, 
msg->address_lo, msg->data);
1bdafba538be70 Jianjun Wang 2021-04-20  409  }
1bdafba538be70 Jianjun Wang 2021-04-20  410  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to