* [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.