From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: stefano@stabellini.net
Cc: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com,
Stefano.Stabellini@eu.citrix.com, sheng@linux.intel.com,
ddutile@redhat.com, jeremy@goop.org
Subject: Re: [PATCH 04/13] Xen PCI platform device driver
Date: Wed, 30 Jun 2010 13:55:52 -0400 [thread overview]
Message-ID: <20100630175552.GB16488@phenom.dumpdata.com> (raw)
In-Reply-To: <1277136847-13266-4-git-send-email-stefano@stabellini.net>
> @@ -476,9 +503,28 @@ static int gnttab_map(unsigned int start_idx, unsigned int end_idx)
>
> int gnttab_resume(void)
> {
> - if (max_nr_grant_frames() < nr_grant_frames)
> + unsigned int max_nr_gframes;
> +
> + max_nr_gframes = max_nr_grant_frames();
> + if (max_nr_gframes < nr_grant_frames)
> return -ENOSYS;
> - return gnttab_map(0, nr_grant_frames - 1);
> +
> + if (xen_pv_domain())
> + return gnttab_map(0, nr_grant_frames - 1);
> +
> + if (!hvm_pv_resume_frames) {
> + hvm_pv_resume_frames = alloc_xen_mmio(PAGE_SIZE * max_nr_gframes);
> + shared = ioremap(hvm_pv_resume_frames, PAGE_SIZE * max_nr_gframes);
> + if (shared == NULL) {
> + printk(KERN_WARNING
> + "Fail to ioremap gnttab share frames\n");
I would say: "Failed to ioremap gnttab share frames!\n".
.. snip ..
> + if (request_region(ioaddr, iolen, DRV_NAME) == NULL) {
> + dev_err(&pdev->dev, "I/O resource 0x%lx @ 0x%lx busy\n",
> + iolen, ioaddr);
> + ret = -EBUSY;
> + goto out;
> + }
> +
> + platform_mmio = mmio_addr;
> + platform_mmiolen = mmio_len;
> +
> + if (!xen_have_vector_callback) {
> + ret = xen_allocate_irq(pdev);
> + if (ret) {
> + printk(KERN_WARNING "request_irq failed err=%d\n", ret);
Use dev_warn here.
> + goto out;
> + }
> + callback_via = get_callback_via(pdev);
> + ret = xen_set_callback_via(callback_via);
> + if (ret) {
> + printk(KERN_WARNING
> + "Unable to set the evtchn callback err=%d\n", ret);
ditto.
> + goto out;
> + }
> + }
> +
> + ret = gnttab_init();
> + if (ret)
> + goto out;
> + xenbus_probe(NULL);
> +
> +out:
> + if (ret) {
> + release_mem_region(mmio_addr, mmio_len);
> + release_region(ioaddr, iolen);
> + pci_disable_device(pdev);
> + }
> +
> + return ret;
> +}
> +
> +static struct pci_device_id platform_pci_tbl[] __devinitdata = {
> + {PCI_VENDOR_ID_XEN, PCI_DEVICE_ID_XEN_PLATFORM,
> + PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
> + {0,}
> +};
> +
> +MODULE_DEVICE_TABLE(pci, platform_pci_tbl);
> +
> +static struct pci_driver platform_driver = {
> + .name = DRV_NAME,
> + .probe = platform_pci_init,
> + .id_table = platform_pci_tbl,
> +};
> +
> +static int __init platform_pci_module_init(void)
> +{
> + int rc;
> +
> + rc = pci_register_driver(&platform_driver);
> + if (rc) {
> + printk(KERN_INFO DRV_NAME
> + ": No platform pci device model found\n");
No need for that. The pci_register_driver call to ->probe and
its subsequent setup, if it failed, should have displayed the
appropiate error+explanation?
How about just making it:
return pci_register_driver(&platform_driver);
WARNING: multiple messages have this Message-ID (diff)
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: stefano@stabellini.net
Cc: jeremy@goop.org, xen-devel@lists.xensource.com,
Stefano.Stabellini@eu.citrix.com, linux-kernel@vger.kernel.org,
ddutile@redhat.com, sheng@linux.intel.com
Subject: Re: [PATCH 04/13] Xen PCI platform device driver
Date: Wed, 30 Jun 2010 13:55:52 -0400 [thread overview]
Message-ID: <20100630175552.GB16488@phenom.dumpdata.com> (raw)
In-Reply-To: <1277136847-13266-4-git-send-email-stefano@stabellini.net>
> @@ -476,9 +503,28 @@ static int gnttab_map(unsigned int start_idx, unsigned int end_idx)
>
> int gnttab_resume(void)
> {
> - if (max_nr_grant_frames() < nr_grant_frames)
> + unsigned int max_nr_gframes;
> +
> + max_nr_gframes = max_nr_grant_frames();
> + if (max_nr_gframes < nr_grant_frames)
> return -ENOSYS;
> - return gnttab_map(0, nr_grant_frames - 1);
> +
> + if (xen_pv_domain())
> + return gnttab_map(0, nr_grant_frames - 1);
> +
> + if (!hvm_pv_resume_frames) {
> + hvm_pv_resume_frames = alloc_xen_mmio(PAGE_SIZE * max_nr_gframes);
> + shared = ioremap(hvm_pv_resume_frames, PAGE_SIZE * max_nr_gframes);
> + if (shared == NULL) {
> + printk(KERN_WARNING
> + "Fail to ioremap gnttab share frames\n");
I would say: "Failed to ioremap gnttab share frames!\n".
.. snip ..
> + if (request_region(ioaddr, iolen, DRV_NAME) == NULL) {
> + dev_err(&pdev->dev, "I/O resource 0x%lx @ 0x%lx busy\n",
> + iolen, ioaddr);
> + ret = -EBUSY;
> + goto out;
> + }
> +
> + platform_mmio = mmio_addr;
> + platform_mmiolen = mmio_len;
> +
> + if (!xen_have_vector_callback) {
> + ret = xen_allocate_irq(pdev);
> + if (ret) {
> + printk(KERN_WARNING "request_irq failed err=%d\n", ret);
Use dev_warn here.
> + goto out;
> + }
> + callback_via = get_callback_via(pdev);
> + ret = xen_set_callback_via(callback_via);
> + if (ret) {
> + printk(KERN_WARNING
> + "Unable to set the evtchn callback err=%d\n", ret);
ditto.
> + goto out;
> + }
> + }
> +
> + ret = gnttab_init();
> + if (ret)
> + goto out;
> + xenbus_probe(NULL);
> +
> +out:
> + if (ret) {
> + release_mem_region(mmio_addr, mmio_len);
> + release_region(ioaddr, iolen);
> + pci_disable_device(pdev);
> + }
> +
> + return ret;
> +}
> +
> +static struct pci_device_id platform_pci_tbl[] __devinitdata = {
> + {PCI_VENDOR_ID_XEN, PCI_DEVICE_ID_XEN_PLATFORM,
> + PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
> + {0,}
> +};
> +
> +MODULE_DEVICE_TABLE(pci, platform_pci_tbl);
> +
> +static struct pci_driver platform_driver = {
> + .name = DRV_NAME,
> + .probe = platform_pci_init,
> + .id_table = platform_pci_tbl,
> +};
> +
> +static int __init platform_pci_module_init(void)
> +{
> + int rc;
> +
> + rc = pci_register_driver(&platform_driver);
> + if (rc) {
> + printk(KERN_INFO DRV_NAME
> + ": No platform pci device model found\n");
No need for that. The pci_register_driver call to ->probe and
its subsequent setup, if it failed, should have displayed the
appropiate error+explanation?
How about just making it:
return pci_register_driver(&platform_driver);
next prev parent reply other threads:[~2010-06-30 17:57 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-21 16:12 [PATCH 0/12] PV on HVM Xen Stefano Stabellini
2010-06-21 16:12 ` Stefano Stabellini
2010-06-21 16:13 ` [PATCH 01/13] Add support for hvm_op stefano
2010-06-21 16:13 ` [PATCH 02/13] early PV on HVM stefano
2010-06-21 16:13 ` [PATCH 03/13] evtchn delivery " stefano
2010-06-21 16:13 ` [PATCH 04/13] Xen PCI platform device driver stefano
2010-06-30 17:55 ` Konrad Rzeszutek Wilk [this message]
2010-06-30 17:55 ` Konrad Rzeszutek Wilk
2010-07-01 11:38 ` Stefano Stabellini
2010-06-21 16:13 ` [PATCH 05/13] Add suspend\resume support for PV on HVM guests stefano
2010-06-21 16:14 ` [PATCH 06/13] Allow xen platform pci device to be compiled as a module stefano
2010-06-21 16:14 ` [PATCH 0/12] PV on HVM Xen Stefano Stabellini
2010-06-21 16:14 ` Stefano Stabellini
2010-06-21 16:14 ` [PATCH 07/13] Fix find_unbound_irq in presence of ioapic irqs stefano
2010-06-21 16:14 ` [PATCH 08/13] Fix possible NULL pointer dereference in print_IO_APIC stefano
2010-06-21 16:14 ` [PATCH 09/13] __setup_vector_irq: handle NULL chip_data stefano
2010-06-21 16:14 ` [PATCH 10/13] Do not try to disable hpet if it hasn't been initialized before stefano
2010-06-30 17:53 ` Konrad Rzeszutek Wilk
2010-06-30 17:53 ` Konrad Rzeszutek Wilk
2010-07-09 1:05 ` john stultz
2010-06-30 21:24 ` Venkatesh Pallipadi
2010-06-30 21:24 ` Venkatesh Pallipadi
2010-07-02 10:44 ` Paolo Bonzini
2010-07-02 10:44 ` Paolo Bonzini
2010-06-21 16:14 ` [PATCH 11/13] Use xen_vcpuop_clockevent, xen_clocksource and xen wallclock stefano
2010-07-01 19:41 ` Don Dutile
2010-07-02 17:17 ` Stefano Stabellini
2010-07-02 17:17 ` Stefano Stabellini
2010-06-21 16:14 ` [PATCH 12/13] Unplug emulated disks and nics stefano
2010-07-01 19:41 ` Don Dutile
2010-07-01 19:41 ` Don Dutile
2010-07-05 11:58 ` Stefano Stabellini
2010-07-07 20:01 ` Don Dutile
2010-07-08 13:13 ` Stefano Stabellini
2010-07-08 13:13 ` Stefano Stabellini
2010-07-08 19:57 ` [Xen-devel] " Don Dutile
2010-07-08 21:29 ` Ian Campbell
2010-07-08 21:29 ` Ian Campbell
2010-07-08 21:59 ` [Xen-devel] " Don Dutile
2010-07-09 8:02 ` Ian Campbell
2010-07-09 8:02 ` Ian Campbell
2010-07-09 10:54 ` Stefano Stabellini
2010-07-09 10:54 ` Stefano Stabellini
2010-07-09 13:42 ` [Xen-devel] " Don Dutile
2010-06-21 16:14 ` [PATCH 13/13] Call HVMOP_pagetable_dying on exit_mmap stefano
2010-06-30 17:56 ` [PATCH 0/12] PV on HVM Xen Konrad Rzeszutek Wilk
2010-07-01 11:38 ` Stefano Stabellini
2010-07-01 19:43 ` [Xen-devel] " Dan Magenheimer
2010-07-02 10:43 ` Stefano Stabellini
2010-07-02 16:08 ` Dan Magenheimer
2010-07-02 17:14 ` Stefano Stabellini
2010-07-02 19:49 ` Dan Magenheimer
2010-07-02 19:49 ` Dan Magenheimer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100630175552.GB16488@phenom.dumpdata.com \
--to=konrad.wilk@oracle.com \
--cc=Stefano.Stabellini@eu.citrix.com \
--cc=ddutile@redhat.com \
--cc=jeremy@goop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sheng@linux.intel.com \
--cc=stefano@stabellini.net \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.