Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753355AbbGVUlZ (ORCPT ); Wed, 22 Jul 2015 16:41:25 -0400 Received: from terminus.zytor.com ([198.137.202.10]:59389 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753318AbbGVUlV (ORCPT ); Wed, 22 Jul 2015 16:41:21 -0400 Date: Wed, 22 Jul 2015 13:40:18 -0700 From: tip-bot for Jiang Liu Message-ID: Cc: linux-kernel@vger.kernel.org, bhelgaas@google.com, paul.gortmaker@windriver.com, marc.zyngier@arm.com, grant.likely@linaro.org, mingo@kernel.org, dmitry.torokhov@gmail.com, tony.luck@intel.com, jiang.liu@linux.intel.com, stuart.yoder@freescale.com, gregkh@linuxfoundation.org, rafael.j.wysocki@intel.com, joe@perches.com, wangyijing@huawei.com, mcgrof@suse.com, tglx@linutronix.de, jroedel@suse.de, hpa@zytor.com, bp@alien8.de, agordeev@redhat.com Reply-To: gregkh@linuxfoundation.org, rafael.j.wysocki@intel.com, wangyijing@huawei.com, joe@perches.com, marc.zyngier@arm.com, mingo@kernel.org, grant.likely@linaro.org, linux-kernel@vger.kernel.org, bhelgaas@google.com, paul.gortmaker@windriver.com, tony.luck@intel.com, dmitry.torokhov@gmail.com, stuart.yoder@freescale.com, jiang.liu@linux.intel.com, hpa@zytor.com, jroedel@suse.de, agordeev@redhat.com, bp@alien8.de, mcgrof@suse.com, tglx@linutronix.de In-Reply-To: <1436428847-8886-10-git-send-email-jiang.liu@linux.intel.com> References: <1436428847-8886-10-git-send-email-jiang.liu@linux.intel.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:irq/core] genirq/MSI: Move msi_list from struct pci_dev to struct device Git-Commit-ID: 4a7cc831670550e6b48ef5760e7213f89935ff0d X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4764 Lines: 130 Commit-ID: 4a7cc831670550e6b48ef5760e7213f89935ff0d Gitweb: http://git.kernel.org/tip/4a7cc831670550e6b48ef5760e7213f89935ff0d Author: Jiang Liu AuthorDate: Thu, 9 Jul 2015 16:00:44 +0800 Committer: Thomas Gleixner CommitDate: Wed, 22 Jul 2015 18:37:43 +0200 genirq/MSI: Move msi_list from struct pci_dev to struct device Move msi_list from struct pci_dev into struct device, so we can support non-PCI-device based generic MSI interrupts. msi_list is now conditional under CONFIG_GENERIC_MSI_IRQ, which is selected from CONFIG_PCI_MSI, so no functional change for PCI MSI users. Signed-off-by: Jiang Liu Reviewed-by: Yijing Wang Acked-by: Bjorn Helgaas Cc: Tony Luck Cc: linux-arm-kernel@lists.infradead.org Cc: Grant Likely Cc: Marc Zyngier Cc: Stuart Yoder Cc: Borislav Petkov Cc: Greg Kroah-Hartman Cc: Joe Perches Cc: Dmitry Torokhov Cc: Paul Gortmaker Cc: Luis R. Rodriguez Cc: Rafael J. Wysocki Cc: Joerg Roedel Cc: Alexander Gordeev Link: http://lkml.kernel.org/r/1436428847-8886-10-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner --- drivers/base/core.c | 3 +++ drivers/pci/msi.c | 3 +-- include/linux/device.h | 4 ++++ include/linux/msi.h | 2 +- include/linux/pci.h | 1 - 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/base/core.c b/drivers/base/core.c index dafae6d..18e2a89 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -662,6 +662,9 @@ void device_initialize(struct device *dev) INIT_LIST_HEAD(&dev->devres_head); device_pm_init(dev); set_dev_node(dev, -1); +#ifdef CONFIG_GENERIC_MSI_IRQ + INIT_LIST_HEAD(&dev->msi_list); +#endif } EXPORT_SYMBOL_GPL(device_initialize); diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index f0714c3..4ef5021 100644 --- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c @@ -900,7 +900,7 @@ void pci_msi_shutdown(struct pci_dev *dev) return; BUG_ON(list_empty(dev_to_msi_list(&dev->dev))); - desc = first_msi_entry(dev); + desc = first_pci_msi_entry(dev); pci_msi_set_enable(dev, 0); pci_intx_for_msi(dev, 1); @@ -1044,7 +1044,6 @@ EXPORT_SYMBOL(pci_msi_enabled); void pci_msi_init_pci_dev(struct pci_dev *dev) { - INIT_LIST_HEAD(&dev->msi_list); } /** diff --git a/include/linux/device.h b/include/linux/device.h index 5a31bf3..22227e7 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -713,6 +713,7 @@ struct device_dma_parameters { * along with subsystem-level and driver-level callbacks. * @pins: For device pin management. * See Documentation/pinctrl.txt for details. + * @msi_list: Hosts MSI descriptors * @numa_node: NUMA node this device is close to. * @dma_mask: Dma mask (if dma'ble device). * @coherent_dma_mask: Like dma_mask, but for alloc_coherent mapping as not all @@ -776,6 +777,9 @@ struct device { #ifdef CONFIG_PINCTRL struct dev_pin_info *pins; #endif +#ifdef CONFIG_GENERIC_MSI_IRQ + struct list_head msi_list; +#endif #ifdef CONFIG_NUMA int numa_node; /* NUMA node this device is close to */ diff --git a/include/linux/msi.h b/include/linux/msi.h index cfbd2af..57fe766 100644 --- a/include/linux/msi.h +++ b/include/linux/msi.h @@ -45,7 +45,7 @@ struct msi_desc { /* Helpers to hide struct msi_desc implementation details */ #define msi_desc_to_dev(desc) (&(desc)->dev.dev) -#define dev_to_msi_list(dev) (&to_pci_dev((dev))->msi_list) +#define dev_to_msi_list(dev) (&(dev)->msi_list) #define first_msi_entry(dev) \ list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list) #define for_each_msi_entry(desc, dev) \ diff --git a/include/linux/pci.h b/include/linux/pci.h index 8a0321a..fbf245f 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -366,7 +366,6 @@ struct pci_dev { struct bin_attribute *res_attr[DEVICE_COUNT_RESOURCE]; /* sysfs file for resources */ struct bin_attribute *res_attr_wc[DEVICE_COUNT_RESOURCE]; /* sysfs file for WC mapping of resources */ #ifdef CONFIG_PCI_MSI - struct list_head msi_list; const struct attribute_group **msi_irq_groups; #endif struct pci_vpd *vpd; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/