CC: kbuild-...@lists.01.org
BCC: l...@intel.com
TO: Srikanth Thokala <srikanth.thok...@intel.com>
CC: nanli2x <nanx...@intel.com>

tree:   https://github.com/intel/linux-intel-lts.git 5.15/linux
head:   7acd0be121091f12349a4dcefd2e6deee2e73946
commit: 28f72667fffb64d777e6f3f3017995d7d4f9e558 [4/5] PCI: thunderbay: Add 
support for Thunderbay Root Port
:::::: branch date: 4 days ago
:::::: commit date: 9 weeks ago
config: xtensa-randconfig-m031-20220422 
(https://download.01.org/0day-ci/archive/20220423/202204232110.scxhvyg9-...@intel.com/config)
compiler: xtensa-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>
Reported-by: Dan Carpenter <dan.carpen...@oracle.com>

New smatch warnings:
drivers/pci/controller/dwc/pcie-keembay.c:255 
thunderbay_pcie_host_rd_other_conf() error: uninitialized symbol 'ret'.
drivers/pci/controller/dwc/pcie-keembay.c:294 thunderbay_pcie_rc_dma_cfg() 
warn: passing zero to 'PTR_ERR'

Old smatch warnings:
drivers/pci/controller/dwc/pcie-keembay.c:301 thunderbay_pcie_rc_dma_cfg() 
warn: passing zero to 'PTR_ERR'

vim +/ret +255 drivers/pci/controller/dwc/pcie-keembay.c

28f72667fffb64 Srikanth Thokala 2021-09-16  219  
28f72667fffb64 Srikanth Thokala 2021-09-16  220  static int
28f72667fffb64 Srikanth Thokala 2021-09-16  221  
thunderbay_pcie_host_rd_other_conf(struct pci_bus *bus, unsigned int devfn,
28f72667fffb64 Srikanth Thokala 2021-09-16  222                                 
   int where, int size, u32 *val)
28f72667fffb64 Srikanth Thokala 2021-09-16  223  {
28f72667fffb64 Srikanth Thokala 2021-09-16  224         struct pcie_port *pp = 
bus->sysdata;
28f72667fffb64 Srikanth Thokala 2021-09-16  225         struct keembay_pcie 
*pcie;
28f72667fffb64 Srikanth Thokala 2021-09-16  226         int ret, where_align;
28f72667fffb64 Srikanth Thokala 2021-09-16  227         struct dw_pcie *pci;
28f72667fffb64 Srikanth Thokala 2021-09-16  228  
28f72667fffb64 Srikanth Thokala 2021-09-16  229         pci = 
to_dw_pcie_from_pp(pp);
28f72667fffb64 Srikanth Thokala 2021-09-16  230         pcie = 
dev_get_drvdata(pci->dev);
28f72667fffb64 Srikanth Thokala 2021-09-16  231  
28f72667fffb64 Srikanth Thokala 2021-09-16  232         if (pcie->rc_dma) {
28f72667fffb64 Srikanth Thokala 2021-09-16  233                 where_align = 
where & ~((typeof(where))(4) - 1);
28f72667fffb64 Srikanth Thokala 2021-09-16  234                 if 
(thunderbay_pcie_rc_dma_rd(pp,
28f72667fffb64 Srikanth Thokala 2021-09-16  235                                 
              pcie->rd_dma_chan,
28f72667fffb64 Srikanth Thokala 2021-09-16  236                                 
              pcie->rc_dma_mem_pa + where_align,
28f72667fffb64 Srikanth Thokala 2021-09-16  237                                 
              pp->cfg0_base + where_align,
28f72667fffb64 Srikanth Thokala 2021-09-16  238                                 
              4))
28f72667fffb64 Srikanth Thokala 2021-09-16  239                         ret = 
PCIBIOS_BAD_REGISTER_NUMBER;
28f72667fffb64 Srikanth Thokala 2021-09-16  240  
28f72667fffb64 Srikanth Thokala 2021-09-16  241                 *val = *((int 
*)(pcie->rc_dma_mem_va + where));
28f72667fffb64 Srikanth Thokala 2021-09-16  242  
28f72667fffb64 Srikanth Thokala 2021-09-16  243                 if (size == 4)
28f72667fffb64 Srikanth Thokala 2021-09-16  244                         *val &= 
0xFFFFFFFF;
28f72667fffb64 Srikanth Thokala 2021-09-16  245                 else if (size 
== 2)
28f72667fffb64 Srikanth Thokala 2021-09-16  246                         *val &= 
0xFFFF;
28f72667fffb64 Srikanth Thokala 2021-09-16  247                 else if (size 
== 1)
28f72667fffb64 Srikanth Thokala 2021-09-16  248                         *val &= 
0xFF;
28f72667fffb64 Srikanth Thokala 2021-09-16  249                 else
28f72667fffb64 Srikanth Thokala 2021-09-16  250                         ret = 
PCIBIOS_BAD_REGISTER_NUMBER;
28f72667fffb64 Srikanth Thokala 2021-09-16  251         } else {
28f72667fffb64 Srikanth Thokala 2021-09-16  252                 ret = 
dw_pcie_read(pp->va_cfg0_base + where, size, val);
28f72667fffb64 Srikanth Thokala 2021-09-16  253         }
28f72667fffb64 Srikanth Thokala 2021-09-16  254  
28f72667fffb64 Srikanth Thokala 2021-09-16 @255         return ret;
28f72667fffb64 Srikanth Thokala 2021-09-16  256  }
28f72667fffb64 Srikanth Thokala 2021-09-16  257  
28f72667fffb64 Srikanth Thokala 2021-09-16  258  static struct pci_ops 
thunderbay_child_pci_ops = {
28f72667fffb64 Srikanth Thokala 2021-09-16  259         .map_bus = 
thunderbay_pcie_conf_addr_map_bus,
28f72667fffb64 Srikanth Thokala 2021-09-16  260         .read = 
thunderbay_pcie_host_rd_other_conf,
28f72667fffb64 Srikanth Thokala 2021-09-16  261         .write = 
pci_generic_config_write,
28f72667fffb64 Srikanth Thokala 2021-09-16  262  };
28f72667fffb64 Srikanth Thokala 2021-09-16  263  
28f72667fffb64 Srikanth Thokala 2021-09-16  264  static int 
thunderbay_pcie_rc_dma_cfg(struct keembay_pcie *pcie,
28f72667fffb64 Srikanth Thokala 2021-09-16  265                                 
      struct platform_device *pdev)
28f72667fffb64 Srikanth Thokala 2021-09-16  266  {
28f72667fffb64 Srikanth Thokala 2021-09-16  267         struct dw_pcie *pci = 
&pcie->pci;
28f72667fffb64 Srikanth Thokala 2021-09-16  268         struct device *dev = 
&pdev->dev;
28f72667fffb64 Srikanth Thokala 2021-09-16  269         struct dma_chan 
*rd_chan;
28f72667fffb64 Srikanth Thokala 2021-09-16  270         dma_addr_t phys;
28f72667fffb64 Srikanth Thokala 2021-09-16  271         void *segment;
28f72667fffb64 Srikanth Thokala 2021-09-16  272         int ret;
28f72667fffb64 Srikanth Thokala 2021-09-16  273  
28f72667fffb64 Srikanth Thokala 2021-09-16  274         ret = 
dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64));
28f72667fffb64 Srikanth Thokala 2021-09-16  275         if (ret)
28f72667fffb64 Srikanth Thokala 2021-09-16  276                 dev_warn(dev, 
"failed to set dma mask\n");
28f72667fffb64 Srikanth Thokala 2021-09-16  277  
28f72667fffb64 Srikanth Thokala 2021-09-16  278         rd_chan = 
dma_request_chan(&pdev->dev, "rx");
28f72667fffb64 Srikanth Thokala 2021-09-16  279         if (IS_ERR(rd_chan)) {
28f72667fffb64 Srikanth Thokala 2021-09-16  280                 ret = 
PTR_ERR(rd_chan);
28f72667fffb64 Srikanth Thokala 2021-09-16  281                 if (ret != 
-EPROBE_DEFER)
28f72667fffb64 Srikanth Thokala 2021-09-16  282                         
dev_err(dev, "No RC AXI DMA Rd channel available\n");
28f72667fffb64 Srikanth Thokala 2021-09-16  283                 return ret;
28f72667fffb64 Srikanth Thokala 2021-09-16  284         }
28f72667fffb64 Srikanth Thokala 2021-09-16  285         pcie->rd_dma_chan = 
rd_chan;
28f72667fffb64 Srikanth Thokala 2021-09-16  286  
28f72667fffb64 Srikanth Thokala 2021-09-16  287         pcie->rc_dma_pool = 
dma_pool_create("thb_pcie_rc_dma_pool",
28f72667fffb64 Srikanth Thokala 2021-09-16  288                                 
            pci->dev,
28f72667fffb64 Srikanth Thokala 2021-09-16  289                                 
            PAGE_SIZE,
28f72667fffb64 Srikanth Thokala 2021-09-16  290                                 
            PAGE_SIZE,
28f72667fffb64 Srikanth Thokala 2021-09-16  291                                 
            0);
28f72667fffb64 Srikanth Thokala 2021-09-16  292         if (!pcie->rc_dma_pool) 
{
28f72667fffb64 Srikanth Thokala 2021-09-16  293                 dev_err(dev, 
"unable to allocate RC AXI DMA pool\n");
28f72667fffb64 Srikanth Thokala 2021-09-16 @294                 ret = 
PTR_ERR(pcie->rc_dma_pool);
28f72667fffb64 Srikanth Thokala 2021-09-16  295                 goto 
free_dma_channel;
28f72667fffb64 Srikanth Thokala 2021-09-16  296         }
28f72667fffb64 Srikanth Thokala 2021-09-16  297  
28f72667fffb64 Srikanth Thokala 2021-09-16  298         segment = 
dma_pool_zalloc(pcie->rc_dma_pool, GFP_ATOMIC, &phys);
28f72667fffb64 Srikanth Thokala 2021-09-16  299         if (!segment) {
28f72667fffb64 Srikanth Thokala 2021-09-16  300                 dev_err(dev, 
"unable to get mem from RC AXI DMA pool\n");
28f72667fffb64 Srikanth Thokala 2021-09-16  301                 ret = 
PTR_ERR(segment);
28f72667fffb64 Srikanth Thokala 2021-09-16  302                 goto 
free_dma_pool;
28f72667fffb64 Srikanth Thokala 2021-09-16  303         }
28f72667fffb64 Srikanth Thokala 2021-09-16  304         pcie->rc_dma_mem_pa = 
phys;
28f72667fffb64 Srikanth Thokala 2021-09-16  305         pcie->rc_dma_mem_va = 
segment;
28f72667fffb64 Srikanth Thokala 2021-09-16  306  
28f72667fffb64 Srikanth Thokala 2021-09-16  307         return 0;
28f72667fffb64 Srikanth Thokala 2021-09-16  308  
28f72667fffb64 Srikanth Thokala 2021-09-16  309  free_dma_channel:
28f72667fffb64 Srikanth Thokala 2021-09-16  310         
dma_release_channel(pcie->rd_dma_chan);
28f72667fffb64 Srikanth Thokala 2021-09-16  311  free_dma_pool:
28f72667fffb64 Srikanth Thokala 2021-09-16  312         
dma_pool_destroy(pcie->rc_dma_pool);
28f72667fffb64 Srikanth Thokala 2021-09-16  313  
28f72667fffb64 Srikanth Thokala 2021-09-16  314         return ret;
28f72667fffb64 Srikanth Thokala 2021-09-16  315  }
28f72667fffb64 Srikanth Thokala 2021-09-16  316  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to