All of lore.kernel.org
 help / color / mirror / Atom feed
* [arm-platforms:irq/alloc_fwnode_pa 7/8] drivers/pci/controller/pci-hyperv.c:2593:27: error: passing argument 2 of 'kasprintf' from incompatible pointer type
@ 2019-08-07 12:51 kbuild test robot
  0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2019-08-07 12:51 UTC (permalink / raw)
  To: Marc Zyngier; +Cc: kbuild-all, linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 6477 bytes --]

tree:   https://kernel.googlesource.com/pub/scm/linux/kernel/git/maz/arm-platforms.git irq/alloc_fwnode_pa
head:   d5865f5879f6f9e9653b5f2256dcf41059301d56
commit: 58266b4ea93f578ca3838bf04b92e51b4a7496f9 [7/8] PCI: hv: Allocate a named fwnode instead of an address-based one
config: x86_64-allmodconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-10) 7.4.0
reproduce:
        git checkout 58266b4ea93f578ca3838bf04b92e51b4a7496f9
        # save the attached .config to linux build tree
        make ARCH=x86_64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All error/warnings (new ones prefixed by >>):

   drivers/pci/controller/pci-hyperv.c: In function 'hv_pci_probe':
>> drivers/pci/controller/pci-hyperv.c:2593:19: warning: passing argument 1 of 'kasprintf' makes integer from pointer without a cast [-Wint-conversion]
     name = kasprintf("%pUL", &hdev->dev_instance);
                      ^~~~~~
   In file included from drivers/pci/controller/pci-hyperv.c:40:0:
   include/linux/kernel.h:466:7: note: expected 'gfp_t {aka unsigned int}' but argument is of type 'char *'
    char *kasprintf(gfp_t gfp, const char *fmt, ...);
          ^~~~~~~~~
>> drivers/pci/controller/pci-hyperv.c:2593:27: error: passing argument 2 of 'kasprintf' from incompatible pointer type [-Werror=incompatible-pointer-types]
     name = kasprintf("%pUL", &hdev->dev_instance);
                              ^
   In file included from drivers/pci/controller/pci-hyperv.c:40:0:
   include/linux/kernel.h:466:7: note: expected 'const char *' but argument is of type 'guid_t * {aka struct <anonymous> *}'
    char *kasprintf(gfp_t gfp, const char *fmt, ...);
          ^~~~~~~~~
   cc1: some warnings being treated as errors

vim +/kasprintf +2593 drivers/pci/controller/pci-hyperv.c

  2512	
  2513	/**
  2514	 * hv_pci_probe() - New VMBus channel probe, for a root PCI bus
  2515	 * @hdev:	VMBus's tracking struct for this root PCI bus
  2516	 * @dev_id:	Identifies the device itself
  2517	 *
  2518	 * Return: 0 on success, -errno on failure
  2519	 */
  2520	static int hv_pci_probe(struct hv_device *hdev,
  2521				const struct hv_vmbus_device_id *dev_id)
  2522	{
  2523		struct hv_pcibus_device *hbus;
  2524		char *name;
  2525		int ret;
  2526	
  2527		/*
  2528		 * hv_pcibus_device contains the hypercall arguments for retargeting in
  2529		 * hv_irq_unmask(). Those must not cross a page boundary.
  2530		 */
  2531		BUILD_BUG_ON(sizeof(*hbus) > PAGE_SIZE);
  2532	
  2533		hbus = (struct hv_pcibus_device *)get_zeroed_page(GFP_KERNEL);
  2534		if (!hbus)
  2535			return -ENOMEM;
  2536		hbus->state = hv_pcibus_init;
  2537	
  2538		/*
  2539		 * The PCI bus "domain" is what is called "segment" in ACPI and
  2540		 * other specs.  Pull it from the instance ID, to get something
  2541		 * unique.  Bytes 8 and 9 are what is used in Windows guests, so
  2542		 * do the same thing for consistency.  Note that, since this code
  2543		 * only runs in a Hyper-V VM, Hyper-V can (and does) guarantee
  2544		 * that (1) the only domain in use for something that looks like
  2545		 * a physical PCI bus (which is actually emulated by the
  2546		 * hypervisor) is domain 0 and (2) there will be no overlap
  2547		 * between domains derived from these instance IDs in the same
  2548		 * VM.
  2549		 */
  2550		hbus->sysdata.domain = hdev->dev_instance.b[9] |
  2551				       hdev->dev_instance.b[8] << 8;
  2552	
  2553		hbus->hdev = hdev;
  2554		refcount_set(&hbus->remove_lock, 1);
  2555		INIT_LIST_HEAD(&hbus->children);
  2556		INIT_LIST_HEAD(&hbus->dr_list);
  2557		INIT_LIST_HEAD(&hbus->resources_for_children);
  2558		spin_lock_init(&hbus->config_lock);
  2559		spin_lock_init(&hbus->device_list_lock);
  2560		spin_lock_init(&hbus->retarget_msi_interrupt_lock);
  2561		init_completion(&hbus->remove_event);
  2562		hbus->wq = alloc_ordered_workqueue("hv_pci_%x", 0,
  2563						   hbus->sysdata.domain);
  2564		if (!hbus->wq) {
  2565			ret = -ENOMEM;
  2566			goto free_bus;
  2567		}
  2568	
  2569		ret = vmbus_open(hdev->channel, pci_ring_size, pci_ring_size, NULL, 0,
  2570				 hv_pci_onchannelcallback, hbus);
  2571		if (ret)
  2572			goto destroy_wq;
  2573	
  2574		hv_set_drvdata(hdev, hbus);
  2575	
  2576		ret = hv_pci_protocol_negotiation(hdev);
  2577		if (ret)
  2578			goto close;
  2579	
  2580		ret = hv_allocate_config_window(hbus);
  2581		if (ret)
  2582			goto close;
  2583	
  2584		hbus->cfg_addr = ioremap(hbus->mem_config->start,
  2585					 PCI_CONFIG_MMIO_LENGTH);
  2586		if (!hbus->cfg_addr) {
  2587			dev_err(&hdev->device,
  2588				"Unable to map a virtual address for config space\n");
  2589			ret = -ENOMEM;
  2590			goto free_config;
  2591		}
  2592	
> 2593		name = kasprintf("%pUL", &hdev->dev_instance);
  2594		if (!name) {
  2595			ret = -ENOMEM;
  2596			goto unmap;
  2597		}
  2598	
  2599		hbus->sysdata.fwnode = irq_domain_alloc_named_fwnode(name);
  2600		kfree(name);
  2601		if (!hbus->sysdata.fwnode) {
  2602			ret = -ENOMEM;
  2603			goto unmap;
  2604		}
  2605	
  2606		ret = hv_pcie_init_irq_domain(hbus);
  2607		if (ret)
  2608			goto free_fwnode;
  2609	
  2610		ret = hv_pci_query_relations(hdev);
  2611		if (ret)
  2612			goto free_irq_domain;
  2613	
  2614		ret = hv_pci_enter_d0(hdev);
  2615		if (ret)
  2616			goto free_irq_domain;
  2617	
  2618		ret = hv_pci_allocate_bridge_windows(hbus);
  2619		if (ret)
  2620			goto free_irq_domain;
  2621	
  2622		ret = hv_send_resources_allocated(hdev);
  2623		if (ret)
  2624			goto free_windows;
  2625	
  2626		prepopulate_bars(hbus);
  2627	
  2628		hbus->state = hv_pcibus_probed;
  2629	
  2630		ret = create_root_hv_pci_bus(hbus);
  2631		if (ret)
  2632			goto free_windows;
  2633	
  2634		return 0;
  2635	
  2636	free_windows:
  2637		hv_pci_free_bridge_windows(hbus);
  2638	free_irq_domain:
  2639		irq_domain_remove(hbus->irq_domain);
  2640	free_fwnode:
  2641		irq_domain_free_fwnode(hbus->sysdata.fwnode);
  2642	unmap:
  2643		iounmap(hbus->cfg_addr);
  2644	free_config:
  2645		hv_free_config_window(hbus);
  2646	close:
  2647		vmbus_close(hdev->channel);
  2648	destroy_wq:
  2649		destroy_workqueue(hbus->wq);
  2650	free_bus:
  2651		free_page((unsigned long)hbus);
  2652		return ret;
  2653	}
  2654	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 70149 bytes --]

[-- Attachment #3: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-08-07 12:52 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-07 12:51 [arm-platforms:irq/alloc_fwnode_pa 7/8] drivers/pci/controller/pci-hyperv.c:2593:27: error: passing argument 2 of 'kasprintf' from incompatible pointer type kbuild test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.