Re: [pci:pci/host-mediatek 11/11] drivers/pci/host/pcie-mediatek.c:541:43: error: 'node' undeclared

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Aug 23, 2017 at 10:53:07PM +0800, kbuild test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git pci/host-mediatek
> head:   8e8ed61600e99258ff59bf36b85b671eed25a462
> commit: 8e8ed61600e99258ff59bf36b85b671eed25a462 [11/11] PCI: mediatek: Add MSI support for MT2712 and MT7622
> config: arm-allmodconfig (attached as .config)
> compiler: arm-linux-gnueabi-gcc (Debian 6.1.1-9) 6.1.1 20160705
> reproduce:
>         wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         git checkout 8e8ed61600e99258ff59bf36b85b671eed25a462
>         # save the attached .config to linux build tree
>         make.cross ARCH=arm 

The "node" and "dev" undeclared errors are my fault, and I fixed them.  But
I don't think I introduced the casting warnings.  These warnings are on a
32-bit build.

I pushed the update to fix the node/dev errors.  Please take a look at the
remaining casting warnings.

> All error/warnings (new ones prefixed by >>):
> 
>    In file included from include/linux/clk.h:16:0,
>                     from drivers/pci/host/pcie-mediatek.c:18:
>    drivers/pci/host/pcie-mediatek.c: In function 'mtk_pcie_msi_setup_irq':
> >> drivers/pci/host/pcie-mediatek.c:488:33: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
>      msg.address_lo = lower_32_bits((u64)(port->base + PCIE_MSI_VECTOR));
>                                     ^
>    include/linux/kernel.h:178:33: note: in definition of macro 'lower_32_bits'
>     #define lower_32_bits(n) ((u32)(n))
>                                     ^
>    drivers/pci/host/pcie-mediatek.c: In function 'mtk_pcie_enable_msi':
> >> drivers/pci/host/pcie-mediatek.c:541:43: error: 'node' undeclared (first use in this function)
>      port->msi_domain = irq_domain_add_linear(node, MTK_MSI_IRQS_NUM,
>                                               ^~~~
>    drivers/pci/host/pcie-mediatek.c:541:43: note: each undeclared identifier is reported only once for each function it appears in
> >> drivers/pci/host/pcie-mediatek.c:545:11: error: 'dev' undeclared (first use in this function)
>       dev_err(dev, "failed to create MSI IRQ domain\n");
>               ^~~
>    In file included from include/linux/clk.h:16:0,
>                     from drivers/pci/host/pcie-mediatek.c:18:
>    drivers/pci/host/pcie-mediatek.c:549:22: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
>      val = lower_32_bits((u64)(port->base + PCIE_MSI_VECTOR));
>                          ^
>    include/linux/kernel.h:178:33: note: in definition of macro 'lower_32_bits'
>     #define lower_32_bits(n) ((u32)(n))
>                                     ^
> 
> vim +/node +541 drivers/pci/host/pcie-mediatek.c
> 
>    459	
>    460	static int mtk_pcie_msi_setup_irq(struct msi_controller *chip,
>    461					  struct pci_dev *pdev, struct msi_desc *desc)
>    462	{
>    463		struct mtk_pcie_port *port;
>    464		struct msi_msg msg;
>    465		unsigned int irq;
>    466		int hwirq;
>    467	
>    468		port = mtk_pcie_find_port(pdev->bus, pdev->devfn);
>    469		if (!port)
>    470			return -EINVAL;
>    471	
>    472		hwirq = mtk_pcie_msi_alloc(port);
>    473		if (hwirq < 0)
>    474			return hwirq;
>    475	
>    476		irq = irq_create_mapping(port->msi_domain, hwirq);
>    477		if (!irq) {
>    478			mtk_pcie_msi_free(port, hwirq);
>    479			return -EINVAL;
>    480		}
>    481	
>    482		chip->dev = &pdev->dev;
>    483	
>    484		irq_set_msi_desc(irq, desc);
>    485	
>    486		/* MT2712/MT7622 only support 32-bit MSI addresses */
>    487		msg.address_hi = 0;
>  > 488		msg.address_lo = lower_32_bits((u64)(port->base + PCIE_MSI_VECTOR));
>    489		msg.data = hwirq;
>    490	
>    491		pci_write_msi_msg(irq, &msg);
>    492	
>    493		return 0;
>    494	}
>    495	
>    496	static void mtk_msi_teardown_irq(struct msi_controller *chip, unsigned int irq)
>    497	{
>    498		struct pci_dev *pdev = to_pci_dev(chip->dev);
>    499		struct irq_data *d = irq_get_irq_data(irq);
>    500		irq_hw_number_t hwirq = irqd_to_hwirq(d);
>    501		struct mtk_pcie_port *port;
>    502	
>    503		port = mtk_pcie_find_port(pdev->bus, pdev->devfn);
>    504		if (!port)
>    505			return;
>    506	
>    507		irq_dispose_mapping(irq);
>    508		mtk_pcie_msi_free(port, hwirq);
>    509	}
>    510	
>    511	static struct msi_controller mtk_pcie_msi_chip = {
>    512		.setup_irq = mtk_pcie_msi_setup_irq,
>    513		.teardown_irq = mtk_msi_teardown_irq,
>    514	};
>    515	
>    516	static struct irq_chip mtk_msi_irq_chip = {
>    517		.name = "MTK PCIe MSI",
>    518		.irq_enable = pci_msi_unmask_irq,
>    519		.irq_disable = pci_msi_mask_irq,
>    520		.irq_mask = pci_msi_mask_irq,
>    521		.irq_unmask = pci_msi_unmask_irq,
>    522	};
>    523	
>    524	static int mtk_pcie_msi_map(struct irq_domain *domain, unsigned int irq,
>    525				    irq_hw_number_t hwirq)
>    526	{
>    527		irq_set_chip_and_handler(irq, &mtk_msi_irq_chip, handle_simple_irq);
>    528		irq_set_chip_data(irq, domain->host_data);
>    529	
>    530		return 0;
>    531	}
>    532	
>    533	static const struct irq_domain_ops msi_domain_ops = {
>    534		.map = mtk_pcie_msi_map,
>    535	};
>    536	
>    537	static int mtk_pcie_enable_msi(struct mtk_pcie_port *port)
>    538	{
>    539		u32 val;
>    540	
>  > 541		port->msi_domain = irq_domain_add_linear(node, MTK_MSI_IRQS_NUM,
>    542							 &msi_domain_ops,
>    543							 &mtk_pcie_msi_chip);
>    544		if (!port->msi_domain) {
>  > 545			dev_err(dev, "failed to create MSI IRQ domain\n");
>    546			return -ENOMEM;
>    547		}
>    548	
>    549		val = lower_32_bits((u64)(port->base + PCIE_MSI_VECTOR));
>    550		writel(val, port->base + PCIE_IMSI_ADDR);
>    551	
>    552		val = readl(port->base + PCIE_INT_MASK);
>    553		val &= ~MSI_MASK;
>    554		writel(val, port->base + PCIE_INT_MASK);
>    555	
>    556		return 0;
>    557	}
>    558	
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation





[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux