Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751861AbbGIH7F (ORCPT ); Thu, 9 Jul 2015 03:59:05 -0400 Received: from mga11.intel.com ([192.55.52.93]:43271 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751261AbbGIH7B (ORCPT ); Thu, 9 Jul 2015 03:59:01 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.15,438,1432623600"; d="scan'208";a="758914599" From: Jiang Liu To: Bjorn Helgaas , Thomas Gleixner , Ingo Molnar , Grant Likely , Marc Zyngier , Stuart Yoder , Yijing Wang , Borislav Petkov Cc: Jiang Liu , Tony Luck , linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [RFC Patch V1 00/12] Reorganize struct msi_desc to prepare for support of generic MSI Date: Thu, 9 Jul 2015 16:00:35 +0800 Message-Id: <1436428847-8886-1-git-send-email-jiang.liu@linux.intel.com> X-Mailer: git-send-email 1.7.10.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3540 Lines: 78 Recently Marc Zyngier has posted a patch set at https://lkml.org/lkml/2015/7/7/712 to enhance PCI MSI code to support generic MSI. This is a companion patch set to refine struct msi_desc and related data structures to support generic MSI, and it would be better to combined with Marc's patch set. It's also requested by Stuart Yoder It first introduces a helper function msi_desc_to_pci_sysdata(), and convert current PCI drivers to use helper functions to access fields in struct msi_desc. Then it moves msi_list from struct pci_dev into struct device and refines struct msi_desc. At last it moves alloc_msi_entry() into kernel/irq/msi.c for reuse. Currently msi_desc_to_pci_sysdata() and msi_desc_to_pci_dev() are implemented as normal functions instead of inlines to avoid header file inclusion issue. If inlined version is preferred for performance, we could move all of first_pci_msi_entry, for_each_pci_msi_entry, msi_desc_to_pci_dev and msi_desc_to_pci_sysdata from linxu/kernel/msi.h into linux/kernel/pci.h. This patch set is based on v4.2-rc1 and passes 0day test suite. You may access the code at: https://github.com/jiangliu/linux.git msi_desc_v1 Thanks! Gerry Jiang Liu (12): PCI: Add helper function msi_desc_to_pci_sysdata() MIPS, PCI: Use for_pci_msi_entry() to access MSI device list PowerPC, PCI: Use for_pci_msi_entry() to access MSI device list s390/pci: Use for_pci_msi_entry() to access MSI device list x86, PCI: Use for_pci_msi_entry() to access MSI device list PCI: Use for_pci_msi_entry() to access MSI device list sparc, PCI: Use helper functions to access fields in struct msi_desc PCI: Use helper functions to access fields in struct msi_desc genirq: Move msi_list from struct pci_dev to struct device genirq, PCI: Store 'struct device *' instead 'struct pci_dev *' in struct msi_desc genirq, PCI: Reorginize struct msi_desc to prepare for support of generic MSI genirq, PCI: Move alloc_msi_entry() from PCI MSI code into generic MSI code arch/mips/pci/msi-octeon.c | 2 +- arch/powerpc/platforms/cell/axon_msi.c | 6 +-- arch/powerpc/platforms/pasemi/msi.c | 4 +- arch/powerpc/platforms/powernv/pci.c | 4 +- arch/powerpc/platforms/pseries/msi.c | 6 +-- arch/powerpc/sysdev/fsl_msi.c | 4 +- arch/powerpc/sysdev/mpic_u3msi.c | 4 +- arch/powerpc/sysdev/ppc4xx_hsta_msi.c | 4 +- arch/powerpc/sysdev/ppc4xx_msi.c | 4 +- arch/s390/pci/pci.c | 6 +-- arch/sparc/kernel/pci.c | 2 +- arch/x86/pci/xen.c | 8 ++-- drivers/base/core.c | 3 ++ drivers/pci/host/pci-keystone-dw.c | 6 +-- drivers/pci/host/pcie-designware.c | 4 +- drivers/pci/host/pcie-xilinx.c | 12 ++--- drivers/pci/msi.c | 82 +++++++++++++++++--------------- drivers/pci/xen-pcifront.c | 2 +- include/linux/device.h | 4 ++ include/linux/msi.h | 55 +++++++++++---------- include/linux/pci.h | 1 - kernel/irq/msi.c | 17 +++++++ 22 files changed, 136 insertions(+), 104 deletions(-) -- 1.7.10.4 -- 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/