From: Yijing Wang <wangyijing@huawei.com>
To: Jiang Liu <jiang.liu@linux.intel.com>,
Joerg Roedel <joro@8bytes.org>,
David Woodhouse <dwmw2@infradead.org>,
Yinghai Lu <yinghai@kernel.org>,
Bjorn Helgaas <bhelgaas@google.com>,
Dan Williams <dan.j.williams@intel.com>,
Vinod Koul <vinod.koul@intel.com>,
"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>
Cc: Ashok Raj <ashok.raj@intel.com>, Tony Luck <tony.luck@intel.com>,
iommu@lists.linux-foundation.org, linux-pci@vger.kernel.org,
linux-hotplug@vger.kernel.org, linux-kernel@vger.kernel.org,
dmaengine@vger.kernel.org
Subject: Re: [Patch Part3 V5 8/8] pci, ACPI, iommu: Enhance pci_root to support DMAR device hotplug
Date: Mon, 15 Sep 2014 03:28:43 +0000 [thread overview]
Message-ID: <54165CEB.6090903@huawei.com> (raw)
In-Reply-To: <1410487848-6027-9-git-send-email-jiang.liu@linux.intel.com>
On 2014/9/12 10:10, Jiang Liu wrote:
> Finally enhance pci_root driver to support DMAR device hotplug when
> hot-plugging PCI host bridges.
Reviewed-by: Yijing Wang <wangyijing@huawei.com>
>
> Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
> ---
> drivers/acpi/pci_root.c | 16 ++++++++++++++--
> 1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
> index e6ae603ed1a1..4e177daa18e3 100644
> --- a/drivers/acpi/pci_root.c
> +++ b/drivers/acpi/pci_root.c
> @@ -33,6 +33,7 @@
> #include <linux/pci.h>
> #include <linux/pci-acpi.h>
> #include <linux/pci-aspm.h>
> +#include <linux/dmar.h>
> #include <linux/acpi.h>
> #include <linux/slab.h>
> #include <acpi/apei.h> /* for acpi_hest_init() */
> @@ -511,6 +512,7 @@ static int acpi_pci_root_add(struct acpi_device *device,
> struct acpi_pci_root *root;
> acpi_handle handle = device->handle;
> int no_aspm = 0, clear_aspm = 0;
> + bool hotadd = system_state != SYSTEM_BOOTING;
>
> root = kzalloc(sizeof(struct acpi_pci_root), GFP_KERNEL);
> if (!root)
> @@ -557,6 +559,11 @@ static int acpi_pci_root_add(struct acpi_device *device,
> strcpy(acpi_device_class(device), ACPI_PCI_ROOT_CLASS);
> device->driver_data = root;
>
> + if (hotadd && dmar_device_add(handle)) {
> + result = -ENXIO;
> + goto end;
> + }
> +
> pr_info(PREFIX "%s [%s] (domain %04x %pR)\n",
> acpi_device_name(device), acpi_device_bid(device),
> root->segment, &root->secondary);
> @@ -583,7 +590,7 @@ static int acpi_pci_root_add(struct acpi_device *device,
> root->segment, (unsigned int)root->secondary.start);
> device->driver_data = NULL;
> result = -ENODEV;
> - goto end;
> + goto remove_dmar;
> }
>
> if (clear_aspm) {
> @@ -597,7 +604,7 @@ static int acpi_pci_root_add(struct acpi_device *device,
> if (device->wakeup.flags.run_wake)
> device_set_run_wake(root->bus->bridge, true);
>
> - if (system_state != SYSTEM_BOOTING) {
> + if (hotadd) {
> pcibios_resource_survey_bus(root->bus);
> pci_assign_unassigned_root_bus_resources(root->bus);
> }
> @@ -607,6 +614,9 @@ static int acpi_pci_root_add(struct acpi_device *device,
> pci_unlock_rescan_remove();
> return 1;
>
> +remove_dmar:
> + if (hotadd)
> + dmar_device_remove(handle);
> end:
> kfree(root);
> return result;
> @@ -625,6 +635,8 @@ static void acpi_pci_root_remove(struct acpi_device *device)
>
> pci_remove_root_bus(root->bus);
>
> + dmar_device_remove(device->handle);
> +
> pci_unlock_rescan_remove();
>
> kfree(root);
>
--
Thanks!
Yijing
WARNING: multiple messages have this Message-ID (diff)
From: Yijing Wang <wangyijing-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
To: Jiang Liu <jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
Joerg Roedel <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>,
David Woodhouse <dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
Yinghai Lu <yinghai-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Bjorn Helgaas <bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
Dan Williams
<dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
Vinod Koul <vinod.koul-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
"Rafael J . Wysocki"
<rafael.j.wysocki-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: Tony Luck <tony.luck-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-hotplug-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
dmaengine-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [Patch Part3 V5 8/8] pci, ACPI, iommu: Enhance pci_root to support DMAR device hotplug
Date: Mon, 15 Sep 2014 11:28:43 +0800 [thread overview]
Message-ID: <54165CEB.6090903@huawei.com> (raw)
In-Reply-To: <1410487848-6027-9-git-send-email-jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
On 2014/9/12 10:10, Jiang Liu wrote:
> Finally enhance pci_root driver to support DMAR device hotplug when
> hot-plugging PCI host bridges.
Reviewed-by: Yijing Wang <wangyijing-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
>
> Signed-off-by: Jiang Liu <jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
> ---
> drivers/acpi/pci_root.c | 16 ++++++++++++++--
> 1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
> index e6ae603ed1a1..4e177daa18e3 100644
> --- a/drivers/acpi/pci_root.c
> +++ b/drivers/acpi/pci_root.c
> @@ -33,6 +33,7 @@
> #include <linux/pci.h>
> #include <linux/pci-acpi.h>
> #include <linux/pci-aspm.h>
> +#include <linux/dmar.h>
> #include <linux/acpi.h>
> #include <linux/slab.h>
> #include <acpi/apei.h> /* for acpi_hest_init() */
> @@ -511,6 +512,7 @@ static int acpi_pci_root_add(struct acpi_device *device,
> struct acpi_pci_root *root;
> acpi_handle handle = device->handle;
> int no_aspm = 0, clear_aspm = 0;
> + bool hotadd = system_state != SYSTEM_BOOTING;
>
> root = kzalloc(sizeof(struct acpi_pci_root), GFP_KERNEL);
> if (!root)
> @@ -557,6 +559,11 @@ static int acpi_pci_root_add(struct acpi_device *device,
> strcpy(acpi_device_class(device), ACPI_PCI_ROOT_CLASS);
> device->driver_data = root;
>
> + if (hotadd && dmar_device_add(handle)) {
> + result = -ENXIO;
> + goto end;
> + }
> +
> pr_info(PREFIX "%s [%s] (domain %04x %pR)\n",
> acpi_device_name(device), acpi_device_bid(device),
> root->segment, &root->secondary);
> @@ -583,7 +590,7 @@ static int acpi_pci_root_add(struct acpi_device *device,
> root->segment, (unsigned int)root->secondary.start);
> device->driver_data = NULL;
> result = -ENODEV;
> - goto end;
> + goto remove_dmar;
> }
>
> if (clear_aspm) {
> @@ -597,7 +604,7 @@ static int acpi_pci_root_add(struct acpi_device *device,
> if (device->wakeup.flags.run_wake)
> device_set_run_wake(root->bus->bridge, true);
>
> - if (system_state != SYSTEM_BOOTING) {
> + if (hotadd) {
> pcibios_resource_survey_bus(root->bus);
> pci_assign_unassigned_root_bus_resources(root->bus);
> }
> @@ -607,6 +614,9 @@ static int acpi_pci_root_add(struct acpi_device *device,
> pci_unlock_rescan_remove();
> return 1;
>
> +remove_dmar:
> + if (hotadd)
> + dmar_device_remove(handle);
> end:
> kfree(root);
> return result;
> @@ -625,6 +635,8 @@ static void acpi_pci_root_remove(struct acpi_device *device)
>
> pci_remove_root_bus(root->bus);
>
> + dmar_device_remove(device->handle);
> +
> pci_unlock_rescan_remove();
>
> kfree(root);
>
--
Thanks!
Yijing
WARNING: multiple messages have this Message-ID (diff)
From: Yijing Wang <wangyijing@huawei.com>
To: Jiang Liu <jiang.liu@linux.intel.com>,
Joerg Roedel <joro@8bytes.org>,
David Woodhouse <dwmw2@infradead.org>,
Yinghai Lu <yinghai@kernel.org>,
"Bjorn Helgaas" <bhelgaas@google.com>,
Dan Williams <dan.j.williams@intel.com>,
"Vinod Koul" <vinod.koul@intel.com>,
"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>
Cc: Ashok Raj <ashok.raj@intel.com>, Tony Luck <tony.luck@intel.com>,
<iommu@lists.linux-foundation.org>, <linux-pci@vger.kernel.org>,
<linux-hotplug@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<dmaengine@vger.kernel.org>
Subject: Re: [Patch Part3 V5 8/8] pci, ACPI, iommu: Enhance pci_root to support DMAR device hotplug
Date: Mon, 15 Sep 2014 11:28:43 +0800 [thread overview]
Message-ID: <54165CEB.6090903@huawei.com> (raw)
In-Reply-To: <1410487848-6027-9-git-send-email-jiang.liu@linux.intel.com>
On 2014/9/12 10:10, Jiang Liu wrote:
> Finally enhance pci_root driver to support DMAR device hotplug when
> hot-plugging PCI host bridges.
Reviewed-by: Yijing Wang <wangyijing@huawei.com>
>
> Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
> ---
> drivers/acpi/pci_root.c | 16 ++++++++++++++--
> 1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
> index e6ae603ed1a1..4e177daa18e3 100644
> --- a/drivers/acpi/pci_root.c
> +++ b/drivers/acpi/pci_root.c
> @@ -33,6 +33,7 @@
> #include <linux/pci.h>
> #include <linux/pci-acpi.h>
> #include <linux/pci-aspm.h>
> +#include <linux/dmar.h>
> #include <linux/acpi.h>
> #include <linux/slab.h>
> #include <acpi/apei.h> /* for acpi_hest_init() */
> @@ -511,6 +512,7 @@ static int acpi_pci_root_add(struct acpi_device *device,
> struct acpi_pci_root *root;
> acpi_handle handle = device->handle;
> int no_aspm = 0, clear_aspm = 0;
> + bool hotadd = system_state != SYSTEM_BOOTING;
>
> root = kzalloc(sizeof(struct acpi_pci_root), GFP_KERNEL);
> if (!root)
> @@ -557,6 +559,11 @@ static int acpi_pci_root_add(struct acpi_device *device,
> strcpy(acpi_device_class(device), ACPI_PCI_ROOT_CLASS);
> device->driver_data = root;
>
> + if (hotadd && dmar_device_add(handle)) {
> + result = -ENXIO;
> + goto end;
> + }
> +
> pr_info(PREFIX "%s [%s] (domain %04x %pR)\n",
> acpi_device_name(device), acpi_device_bid(device),
> root->segment, &root->secondary);
> @@ -583,7 +590,7 @@ static int acpi_pci_root_add(struct acpi_device *device,
> root->segment, (unsigned int)root->secondary.start);
> device->driver_data = NULL;
> result = -ENODEV;
> - goto end;
> + goto remove_dmar;
> }
>
> if (clear_aspm) {
> @@ -597,7 +604,7 @@ static int acpi_pci_root_add(struct acpi_device *device,
> if (device->wakeup.flags.run_wake)
> device_set_run_wake(root->bus->bridge, true);
>
> - if (system_state != SYSTEM_BOOTING) {
> + if (hotadd) {
> pcibios_resource_survey_bus(root->bus);
> pci_assign_unassigned_root_bus_resources(root->bus);
> }
> @@ -607,6 +614,9 @@ static int acpi_pci_root_add(struct acpi_device *device,
> pci_unlock_rescan_remove();
> return 1;
>
> +remove_dmar:
> + if (hotadd)
> + dmar_device_remove(handle);
> end:
> kfree(root);
> return result;
> @@ -625,6 +635,8 @@ static void acpi_pci_root_remove(struct acpi_device *device)
>
> pci_remove_root_bus(root->bus);
>
> + dmar_device_remove(device->handle);
> +
> pci_unlock_rescan_remove();
>
> kfree(root);
>
--
Thanks!
Yijing
next prev parent reply other threads:[~2014-09-15 3:28 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-12 2:10 [Patch Part3 V5 0/8] Enable support of Intel DMAR device hotplug Jiang Liu
2014-09-12 2:10 ` Jiang Liu
2014-09-12 2:10 ` Jiang Liu
2014-09-12 2:10 ` [Patch Part3 V5 1/8] iommu/vt-d: Introduce helper function dmar_walk_resources() Jiang Liu
2014-09-12 2:10 ` Jiang Liu
2014-09-12 2:10 ` Jiang Liu
2014-09-12 9:16 ` Yijing Wang
2014-09-12 9:16 ` Yijing Wang
2014-09-12 9:16 ` Yijing Wang
2014-09-16 7:13 ` Jiang Liu
2014-09-16 7:13 ` Jiang Liu
2014-09-16 7:13 ` Jiang Liu
2014-09-16 8:08 ` Yijing Wang
2014-09-16 8:08 ` Yijing Wang
2014-09-16 8:08 ` Yijing Wang
2014-09-12 2:10 ` [Patch Part3 V5 2/8] iommu/vt-d: Dynamically allocate and free seq_id for DMAR units Jiang Liu
2014-09-12 2:10 ` Jiang Liu
2014-09-12 2:10 ` Jiang Liu
2014-09-12 9:16 ` Yijing Wang
2014-09-12 9:16 ` Yijing Wang
2014-09-12 9:16 ` Yijing Wang
2014-09-12 2:10 ` [Patch Part3 V5 3/8] iommu/vt-d: Implement DMAR unit hotplug framework Jiang Liu
2014-09-12 2:10 ` Jiang Liu
2014-09-12 2:10 ` Jiang Liu
2014-09-15 1:40 ` Yijing Wang
2014-09-15 1:40 ` Yijing Wang
2014-09-15 1:40 ` Yijing Wang
2014-09-12 2:10 ` [Patch Part3 V5 4/8] iommu/vt-d: Search for ACPI _DSM method for DMAR hotplug Jiang Liu
2014-09-12 2:10 ` Jiang Liu
2014-09-12 2:10 ` Jiang Liu
2014-09-15 1:53 ` Yijing Wang
2014-09-15 1:53 ` Yijing Wang
2014-09-15 1:53 ` Yijing Wang
2014-09-12 2:10 ` [Patch Part3 V5 5/8] iommu/vt-d: Enhance intel_irq_remapping driver to support DMAR unit hotplug Jiang Liu
2014-09-12 2:10 ` Jiang Liu
2014-09-12 2:10 ` Jiang Liu
2014-09-15 2:20 ` Yijing Wang
2014-09-15 2:20 ` Yijing Wang
2014-09-15 2:20 ` Yijing Wang
2014-09-16 7:00 ` Jiang Liu
2014-09-16 7:00 ` Jiang Liu
2014-09-16 7:00 ` Jiang Liu
2014-09-16 7:53 ` Yijing Wang
2014-09-16 7:53 ` Yijing Wang
2014-09-16 7:53 ` Yijing Wang
2014-09-16 8:13 ` Jiang Liu
2014-09-16 8:13 ` Jiang Liu
2014-09-16 8:13 ` Jiang Liu
2014-09-12 2:10 ` [Patch Part3 V5 6/8] iommu/vt-d: Enhance error recovery in function intel_enable_irq_remapping() Jiang Liu
2014-09-12 2:10 ` Jiang Liu
2014-09-12 2:10 ` Jiang Liu
2014-09-15 2:25 ` Yijing Wang
2014-09-15 2:25 ` Yijing Wang
2014-09-15 2:25 ` Yijing Wang
2014-09-12 2:10 ` [Patch Part3 V5 7/8] iommu/vt-d: Enhance intel-iommu driver to support DMAR unit hotplug Jiang Liu
2014-09-12 2:10 ` Jiang Liu
2014-09-12 2:10 ` Jiang Liu
2014-09-15 2:53 ` Yijing Wang
2014-09-15 2:53 ` Yijing Wang
2014-09-15 2:53 ` Yijing Wang
2014-09-12 2:10 ` [Patch Part3 V5 8/8] pci, ACPI, iommu: Enhance pci_root to support DMAR device hotplug Jiang Liu
2014-09-12 2:10 ` Jiang Liu
2014-09-12 2:10 ` Jiang Liu
2014-09-15 3:28 ` Yijing Wang [this message]
2014-09-15 3:28 ` Yijing Wang
2014-09-15 3:28 ` Yijing Wang
2014-09-15 7:54 ` [Patch Part3 V5 0/8] Enable support of Intel " Yijing Wang
2014-09-15 7:54 ` Yijing Wang
2014-09-15 7:54 ` Yijing Wang
2014-09-16 7:17 ` Jiang Liu
2014-09-16 7:17 ` Jiang Liu
2014-09-16 7:17 ` Jiang Liu
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=54165CEB.6090903@huawei.com \
--to=wangyijing@huawei.com \
--cc=ashok.raj@intel.com \
--cc=bhelgaas@google.com \
--cc=dan.j.williams@intel.com \
--cc=dmaengine@vger.kernel.org \
--cc=dwmw2@infradead.org \
--cc=iommu@lists.linux-foundation.org \
--cc=jiang.liu@linux.intel.com \
--cc=joro@8bytes.org \
--cc=linux-hotplug@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=rafael.j.wysocki@intel.com \
--cc=tony.luck@intel.com \
--cc=vinod.koul@intel.com \
--cc=yinghai@kernel.org \
/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.