Use for_each_drhd_unit() instead of list_for_each_entry for
better readability.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/iommu/dmar.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c
index 785675a..da2d0d9
] Present field in the IRTE entry is
clear
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/iommu/dmar.c| 93 +-
drivers/iommu/intel-iommu.c | 155 ---
include/linux/dmar.h| 20 --
3 files changed
HI Bjorn,
Thanks for your review and comments very much!
+list_for_each_entry(dmar_dev, head, list)
+if (dmar_dev-segment == pci_domain_nr(dev-bus)
+ dmar_dev-bus == dev-bus-number
+ dmar_dev-devfn == dev-devfn)
+
Hmmm, this is the thing I am most worried about. If we just only use
(pci_dev *) poninter in drhd-devices array as a identification. Change
(pci_dev *) pointer instead of pci device id segment:bus:devfn is safe.
Or, this is a wrong way to fix this issue. I don't know IOMMU driver much
now,
On 2013/11/20 23:59, David Woodhouse wrote:
On Fri, 2013-11-08 at 08:46 -0700, Bjorn Helgaas wrote:
I don't know the IOMMU drivers well either, but it seems like they
rely on notifications of device addition and removal (see
iommu_bus_notifier()). It doesn't seem right for them to also use
to manage target devices for IOMMU,
we can easily use list helper.
Yijing Wang (1):
IOMMU: enhance dmar to support device hotplug
drivers/iommu/dmar.c| 82 +++---
drivers/iommu/intel-iommu.c | 161 +-
include/linux/dmar.h
Tested-and-reviewed-by: Yijing Wang wangyij...@huawei.com
On 2013/11/29 16:50, Jiang Liu wrote:
Currently Intel interrupt remapping drivers uses the present flag bit
in remapping entry to track whether an entry is allocated or not.
It works as follow:
1) allocate a remapping entry and set its
Reviewed-by: Yijing Wang wangyij...@huawei.com
On 2013/11/29 16:50, Jiang Liu wrote:
Function dmar_parse_dev_scope() should release the PCI device reference
count gained in function dmar_parse_one_dev_scope() on error recovery,
otherwise will cause PCI device object leakage.
This patch also
) {
printk(KERN_ERR Allocating domain array failed\n);
+ kfree(iommu-domain_ids);
+ iommu-domain_ids = NULL;
return -ENOMEM;
}
Acked-by: Yijing Wang wangyij...@huawei.com
--
Thanks!
Yijing
___
iommu mailing
This patch is the same as the last.:)
On 2013/11/29 16:50, Jiang Liu wrote:
Flag irq_remapping_enabled is only set by intel_enable_irq_remapping(),
which is called after detect_intel_iommu(). So we should check flag
disable_irq_remap instead of irq_remapping_enabled in function
will be enabled to support
x2apic and Intr-remapping.\n);
Reviewed-by: Yijing Wang wangyij...@huawei.com
--
Thanks!
Yijing
___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
Reviewed-by: Yijing Wang wangyij...@huawei.com
On 2013/11/29 16:50, Jiang Liu wrote:
In function free_dmar_iommu(), it sets IRQ handler data to NULL
before calling free_irq(), which will cause invalid memory access
because free_irq() will access IRQ handler data when calling
function
Use PCI standard marco dev_is_pci() instead of directly compare
pci_bus_type to check whether it is pci device.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/iommu/fsl_pamu_domain.c |6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/iommu
Use PCI standard marco dev_is_pci() instead of directly compare
pci_bus_type to check whether it is pci device.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/iommu/amd_iommu.c |4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/iommu/amd_iommu.c b
Use PCI standard marco dev_is_pci() instead of directly compare
pci_bus_type to check whether it is pci device.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/iommu/intel-iommu.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/iommu/intel-iommu.c b
On 2013/12/11 1:03, Don Dutile wrote:
On 11/21/2013 03:21 AM, Yijing Wang wrote:
This is the v2 patch, the v1 link:
http://marc.info/?l=linux-pcim=138364004628824w=2
v1-v2: keep (pci_dev *) pointer array in dmar_drhd_uni, only use pci device
id
to update pci_dev * pointer info
This is a issue, our BIOS also supports several ATSR which have the same
segment.
Good fix :)
On 2014/1/7 17:00, Jiang Liu wrote:
Current Intel IOMMU driver only matches a PCIe root port with the first
DRHD unit with the samge segment number. It will report false result
if there are multiple
On 2014/3/4 22:31, Joerg Roedel wrote:
On Thu, Nov 21, 2013 at 04:21:56PM +0800, Yijing Wang wrote:
@@ -3641,21 +3681,42 @@ static int device_notifier(struct notifier_block *nb,
struct device *dev = data;
struct pci_dev *pdev = to_pci_dev(dev);
struct dmar_domain *domain
Some cleanup patches for iommu/vt-d.
Yijing Wang (6):
iommu/vt-d: Use list_for_each_safe() to simplify code
iommu/vt-d: move up no_iommu and dmar_disabled check
iommu/vt-d: clear the redundant assignment in dmar_enable_qi
iommu/vt-d: clear the redundant assignment for domain-nid
iommu
__dmar_enable_qi() will initialize free_head,free_tail and
free_cnt for q_inval. Remove the redundant initialization
in dmar_enable_qi().
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/iommu/dmar.c |3 ---
1 files changed, 0 insertions(+), 3 deletions(-)
diff --git a/drivers
Alloc_domain() will initialize domain-nid to -1. So the
initialization for domain-nid in md_domain_init() is redundant,
clear it.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/iommu/intel-iommu.c |1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/drivers
Decrease the device reference count avoid memory leak.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/iommu/intel-iommu.c |3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index 455896c..a78a824
Use inline function dma_pte_superpage() instead of macro for
better readability.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/iommu/intel-iommu.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
Use list_for_each_entry_safe() instead of list_entry()
to simplify code.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/iommu/intel-iommu.c |6 ++
1 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/iommu/intel-iommu.c |6 ++
1 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index f256ffc..7b7127a 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers
ping...
On 2014/5/26 20:13, Yijing Wang wrote:
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/iommu/intel-iommu.c |6 ++
1 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index f256ffc..7b7127a
ping...
On 2014/5/20 20:37, Yijing Wang wrote:
Some cleanup patches for iommu/vt-d.
Yijing Wang (6):
iommu/vt-d: Use list_for_each_safe() to simplify code
iommu/vt-d: move up no_iommu and dmar_disabled check
iommu/vt-d: clear the redundant assignment in dmar_enable_qi
iommu/vt-d
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index e020dcf..6b71608 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -3948,6 +3948,9 @@ int __init intel_iommu_init(void)
/* VT-d is required for a TXT/tboot launch, so enforce that */
On 2014/7/4 17:22, Joerg Roedel wrote:
On Tue, May 20, 2014 at 08:37:46PM +0800, Yijing Wang wrote:
Yijing Wang (6):
iommu/vt-d: Use list_for_each_safe() to simplify code
iommu/vt-d: move up no_iommu and dmar_disabled check
iommu/vt-d: clear the redundant assignment in dmar_enable_qi
[ 1438.703851] DMAR:[fault reason 02] Present bit in context entry is clear
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/x86/include/asm/iommu.h |2 ++
arch/x86/kernel/pci-dma.c|8
drivers/iommu/intel-iommu.c | 41 +
3 files
extern struct iommu_table_entry __iommu_table[], __iommu_table_end[];
@@ -146,6 +148,7 @@ void dma_generic_free_coherent(struct device *dev,
size_t size, void *vaddr,
*/
static __init int iommu_setup(char *p)
{
+char *end;
iommu_merge = 1;
if (!p)
@@ -192,6
On 2014/8/12 11:18, Jiang Liu wrote:
On 2014/8/12 9:37, Yijing Wang wrote:
On 2014/8/11 22:59, Linda Knippers wrote:
On 8/11/2014 12:43 AM, Alex Williamson wrote:
On Mon, 2014-08-11 at 10:54 +0800, Yijing Wang wrote:
We found some strange devices in HP C7000 and Huawei Server. These devices
Currently, PCI drivers will initialize bus-msi in
pcibios_add_bus(). pcibios_add_bus() will be called
in every pci bus initialization. So the bus-msi
assignment in pci_alloc_child_bus() is useless.
Signed-off-by: Yijing Wang wangyij...@huawei.com
CC: Thierry Reding thierry.red...@avionic
future Non-PCI MSI device.
Signed-off-by: Yijing Wang wangyij...@huawei.com
CC: Thierry Reding thierry.red...@avionic-design.de
CC: Thomas Petazzoni thomas.petazz...@free-electrons.com
---
drivers/irqchip/irq-armada-370-xp.c |4 ++--
drivers/pci/host/pci-tegra.c|3 ++-
drivers/pci/host
-by: Yijing Wang wangyij...@huawei.com
CC: Thierry Reding thierry.red...@avionic-design.de
CC: Thomas Petazzoni thomas.petazz...@free-electrons.com
---
drivers/irqchip/irq-armada-370-xp.c | 12 +---
drivers/pci/host/pci-tegra.c|8 +---
drivers/pci/host/pcie-designware.c |4
Currently, pcie-designware, pcie-rcar, pci-tegra drivers
use irq chip_data to the msi_chip pointer. They already call
irq_set_chip_data() in their own MSI irq map functions.
So irq_set_chip_data() in arch_setup_msi_irq() is useless.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers
Introduce a new struct msi_chip iop13xx_msi_chip instead of weak arch
functions to configure MSI/MSI-X. And associate the pci bus with msi_chip
in pcibios_add_bus().
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/arm/mach-iop13xx/include/mach/pci.h |2 ++
arch/arm/mach-iop13xx
This series is mainly to use msi_chip instead of currently weak arch functions
across all platforms. Also clean up current MSI code and make drivers support
MSI easier.
Yijing Wang (20):
x86/xen/MSI: Eliminate arch_msix_mask_irq() and arch_msi_mask_irq()
MSI: Clean up struct msi_chip
Introduce a new struct msi_chip sparc_msi_chip instead of weak arch
functions to configure MSI/MSI-X.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/sparc/kernel/pci.c | 18 ++
1 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/arch/sparc/kernel/pci.c b
this is preparation for using struct
msi_chip instead of weak arch MSI functions in all platforms.
Signed-off-by: Yijing Wang wangyij...@huawei.com
CC: Konrad Rzeszutek Wilk konrad.w...@oracle.com
---
arch/x86/include/asm/x86_init.h |3 ---
arch/x86/kernel/apic/io_apic.c | 15
Introduce a new struct msi_chip apic_msi_chip instead of weak arch
functions to configure MSI/MSI-X in x86.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/x86/include/asm/pci.h |1 +
arch/x86/kernel/apic/io_apic.c | 20
2 files changed, 17 insertions
deliver their MSI to PCI hostbridge, if more
than one msi_chip found in system, DTS file will report the binding
between MSI devices and target msi_chip. So we need a platform implemented
interface to do that.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/pci/msi.c | 30
Introduce a new struct msi_chip ia64_msi_chip instead of weak arch
functions to configure MSI/MSI-X.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/ia64/kernel/msi_ia64.c | 18 ++
1 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/arch/ia64/kernel
Now we can clean up MSI weak arch functions in x86.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/x86/include/asm/pci.h |3 ---
arch/x86/kernel/apic/io_apic.c |2 +-
arch/x86/kernel/x86_init.c | 24
3 files changed, 1 insertions(+), 28
Introduce a new struct msi_chip zpci_msi_chip instead of weak arch
functions to configure MSI/MSI-X.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/s390/pci/pci.c | 16 ++--
1 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/arch/s390/pci/pci.c b/arch/s390
Introduce a new struct msi_chip xlp_chip instead of weak arch
functions to configure MSI/MSI-X.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/mips/pci/msi-xlp.c | 15 +--
1 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/arch/mips/pci/msi-xlp.c b/arch/mips
Introduce a new struct msi_chip remap_msi_chip instead of weak arch
functions to configure irq remapping MSI/MSI-X in x86.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/iommu/irq_remapping.c | 13 +
1 files changed, 9 insertions(+), 4 deletions(-)
diff --git
Introduce a new struct msi_chip xlr_msi_chip instead of weak arch
functions to configure MSI/MSI-X.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/mips/pci/pci-xlr.c | 19 +++
1 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/arch/mips/pci/pci-xlr.c b
Introduce a new struct msi_chip ppc_msi_chip instead of weak arch
functions to configure MSI/MSI-X.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/powerpc/kernel/msi.c | 23 +--
1 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/arch/powerpc/kernel
Now we use struct msi_chip in all platforms to configure
MSI/MSI-X. We can clean up the unused arch functions.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/pci/msi.c | 82
1 files changed, 32 insertions(+), 50 deletions
Introduce a new struct msi_chip xen_msi_chip instead of weak arch
functions to configure MSI/MSI-X.
Signed-off-by: Yijing Wang wangyij...@huawei.com
CC: Konrad Rzeszutek Wilk konrad.w...@oracle.com
---
arch/x86/pci/xen.c | 128 +--
1 files changed
Introduce a new struct msi_chip octeon_msi_chip instead of weak arch
functions to configure MSI/MSI-X.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/mips/pci/msi-octeon.c | 45 ++-
1 files changed, 19 insertions(+), 26 deletions(-)
diff
On 2014/8/12 17:09, David Vrabel wrote:
On 12/08/14 08:25, Yijing Wang wrote:
Commit 0e4ccb150 added two __weak arch functions arch_msix_mask_irq()
and arch_msi_mask_irq() to fix a bug found when running xen in x86.
Introduced these two funcntions make MSI code complex. This patch
reverted
Maybe there are the same bus:dev.fn in different domains,
so add the domain field for dmar fault message to
identify the exact source device.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/iommu/dmar.c |8
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git
-by: Yijing Wang wangyij...@huawei.com
---
v1-v2: Documented to kernel-parameter, tested ok in the real broken platforms.
---
Documentation/kernel-parameters.txt |2 +
arch/x86/include/asm/iommu.h|2 +
arch/x86/kernel/pci-dma.c |8 ++
drivers/iommu/intel-iommu.c
+/* We found some strange devices in HP c7000 and other platforms, they
+ * can not be enumerated by OS, and they did DMA read/write without
+ * driver management. if we open iommu in these platforms, the DMA
read/write
+ * will be blocked by IOMMU hardware. Currently, we only
On 2014/8/25 20:11, Sathya Perla wrote:
-Original Message-
From: Yijing Wang [mailto:wangyij...@huawei.com]
On 2014/8/25 17:32, Sathya Perla wrote:
-Original Message-
From: Joerg Roedel [mailto:j...@8bytes.org]
[Adding the Emulex driver developers to Cc for some input
On 2014/8/25 23:04, David Woodhouse wrote:
On Mon, 2014-08-25 at 12:11 +, Sathya Perla wrote:
Hi Wang, from the kernel log I can see that the faulting address
0xbdf7 falls in the
RMRR range the BIOS requested:
[0.111343] DMAR: RMRR base: 0x00bdf6f000 end: 0x00bdf7efff
On 2014/8/25 17:15, Joerg Roedel wrote:
[Adding the Emulex driver developers to Cc for some input on the device,
and why it might use wrong request ids]
Thanks!
On Mon, Aug 25, 2014 at 02:44:59PM +0800, Yijing Wang wrote:
We found some strange devices in HP C7000 and Huawei Storage Server
Could you also please send the me the FW version (output of ethtool -i
eth0)
Hi Sathya, thanks for your help. FW version is 4.6.247.5 driver version is
4.4.161.0s
Hi Wang, this issue (a FW bug) was fixed in the 4.9 FW series.
The HP qualified FW (ver 4.9.416.0) is available at
() used in ARM platform, find the MSI chip
by pci bus.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/pci/msi.c |7 ++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index a77e7f7..539c11d 100644
--- a/drivers/pci/msi.c
Currently, pcie-designware, pcie-rcar, pci-tegra drivers
use irq chip_data to save the msi_chip pointer. They
already call irq_set_chip_data() in their own MSI irq map
functions. So irq_set_chip_data() in arch_setup_msi_irq()
is useless.
Signed-off-by: Yijing Wang wangyij...@huawei.com
Now we can clean up MSI weak arch functions in x86.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/x86/include/asm/pci.h |3 ---
arch/x86/include/asm/x86_init.h |4
arch/x86/kernel/apic/io_apic.c |2 +-
arch/x86/kernel/x86_init.c | 24
Use MSI chip framework instead of arch MSI functions to configure
MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/iommu/irq_remapping.c |8 +++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git
Use MSI chip framework instead of arch MSI functions to configure
MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework.
Signed-off-by: Yijing Wang wangyij...@huawei.com
CC: Konrad Rzeszutek Wilk konrad.w...@oracle.com
---
arch/x86/pci/xen.c | 46
Use MSI chip framework instead of arch MSI functions to configure
MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/arm/mach-iop13xx/include/mach/pci.h |2 ++
arch/arm/mach-iop13xx/iq81340mc.c|1 +
arch
Use MSI chip framework instead of arch MSI functions to configure
MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/s390/pci/pci.c | 18 ++
1 files changed, 14 insertions(+), 4 deletions(-)
diff
Use MSI chip framework instead of arch MSI functions to configure
MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/mips/pci/msi-xlp.c | 14 --
1 files changed, 12 insertions(+), 2 deletions(-)
diff
Use MSI chip framework instead of arch MSI functions to configure
MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/sparc/kernel/pci.c | 14 --
1 files changed, 12 insertions(+), 2 deletions(-)
diff
Use MSI chip framework instead of arch MSI functions to configure
MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/powerpc/kernel/msi.c | 14 --
1 files changed, 12 insertions(+), 2 deletions(-)
diff
Use MSI chip framework instead of arch MSI functions to configure
MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/tile/kernel/pci_gx.c | 14 --
1 files changed, 12 insertions(+), 2 deletions(-)
diff
Now we use struct msi_chip in all platforms to configure
MSI/MSI-X. We can clean up the unused arch functions.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/iommu/irq_remapping.c |2 +-
drivers/pci/msi.c | 99 -
include
Msi_chip functions setup_irq/teardown_irq rarely use msi_chip
argument. We can look up msi_chip pointer by the device pointer
or irq number, so clean up msi_chip argument.
Signed-off-by: Yijing Wang wangyij...@huawei.com
CC: Thierry Reding thierry.red...@gmail.com
CC: Thomas Petazzoni
Currently, PCI drivers will initialize bus-msi in
pcibios_add_bus(). pcibios_add_bus() will be called
in every pci bus initialization. So the bus-msi
assignment in pci_alloc_child_bus() is useless.
Signed-off-by: Yijing Wang wangyij...@huawei.com
CC: Thierry Reding thierry.red...@avionic
On 2014/9/5 22:29, David Vrabel wrote:
On 05/09/14 11:09, Yijing Wang wrote:
Use MSI chip framework instead of arch MSI functions to configure
MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework.
[...]
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
[...]
@@ -418,9
On 2014/9/10 20:36, David Vrabel wrote:
On 05/09/14 11:09, Yijing Wang wrote:
Commit 0e4ccb150 added two __weak arch functions arch_msix_mask_irq()
and arch_msi_mask_irq() to fix a bug found when running xen in x86.
Introduced these two funcntions make MSI code complex. And mask/unmask
On 2014/9/10 20:38, David Vrabel wrote:
On 09/09/14 03:06, Yijing Wang wrote:
On 2014/9/5 22:29, David Vrabel wrote:
On 05/09/14 11:09, Yijing Wang wrote:
Use MSI chip framework instead of arch MSI functions to configure
MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework
On 2014/9/10 22:59, Konrad Rzeszutek Wilk wrote:
On Wed, Sep 10, 2014 at 01:38:25PM +0100, David Vrabel wrote:
On 09/09/14 03:06, Yijing Wang wrote:
On 2014/9/5 22:29, David Vrabel wrote:
On 05/09/14 11:09, Yijing Wang wrote:
Use MSI chip framework instead of arch MSI functions to configure
Change local functions to static.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/x86/include/asm/irq_remapping.h | 27 +--
drivers/iommu/irq_remapping.c| 34 +-
2 files changed, 18 insertions(+), 43 deletions(-)
diff
()
setup_hpet_msi_remapped()
intel_setup_hpet_msi()
alloc_irte()
Currently, we only alloc_irte() for hpet MSI, but
have not composed and wrote its msg...
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
drivers/iommu/irq_remapping.c
preparing to look at it. Joerg, please drop this trivial patch.
Thanks!
Yijing.
Regards!
Gerry
On 2014/9/12 17:05, Yijing Wang wrote:
Change local functions to static.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/x86/include/asm/irq_remapping.h | 27
On 2014/9/12 17:02, Jiang Liu wrote:
On 2014/9/12 17:05, Yijing Wang wrote:
Commit 71054d8841b4 introduced x86_msi_ops.setup_hpet_msi
to setup hpet MSI irq when irq remapping enabled.
This caused a regression of hpet MSI irq remapping.
Original code flow before commit 71054d8841b4
On 2014/9/12 10:10, Jiang Liu wrote:
Introduce functions to support dynamic IOMMU seq_id allocating and
releasing, which will be used to support DMAR hotplug.
Also rename IOMMU_UNITS_SUPPORTED as DMAR_UNITS_SUPPORTED.
Reviewed-by: Yijing Wang wangyij...@huawei.com
Signed-off-by: Jiang
On 2014/9/12 10:10, Jiang Liu wrote:
Introduce helper function dmar_walk_resources to walk resource entries
in DMAR table and ACPI buffer object returned by ACPI _DSM method
for IOMMU hot-plug.
Signed-off-by: Jiang Liu jiang@linux.intel.com
Hi Gerry. some comments below.
---
+static void ir_remove_ioapic_hpet_scope(struct intel_iommu *iommu)
+{
+ int i;
- ir_parse_one_hpet_scope(scope, iommu);
- }
- start += scope-length;
- }
+ for (i = 0; i MAX_HPET_TBS; i++)
+ if (ir_hpet[i].iommu ==
);
+ intel_teardown_irq_remapping(iommu);
+ }
if (x2apic_present)
pr_warn(Failed to enable irq remapping. You are vulnerable to
irq-injection attacks.\n);
Reviewed-by: Yijing Wang wangyij...@huawei.com
--
Thanks!
Yijing
On 2014/9/12 10:10, Jiang Liu wrote:
Implement required callback functions for intel-iommu driver
to support DMAR unit hotplug.
Reviewed-by: Yijing Wang wangyij...@huawei.com
Signed-off-by: Jiang Liu jiang@linux.intel.com
---
drivers/iommu/intel-iommu.c | 206
I built and boot this series in Huawei RH5885 (Intel(R) Xeon(R) CPU E7- 4807,
two IOHs and two IOMMUs),
It works fine, IRQ remap and DMA remap are both look good.
But because my platform BIOS has no _DSM, so I didn't test the hotplug case yet.
Thanks!
Yijing.
On 2014/9/12 10:10, Jiang Liu
On 2014/9/15 22:00, Lucas Stach wrote:
Am Freitag, den 05.09.2014, 18:09 +0800 schrieb Yijing Wang:
Currently, pcie-designware, pcie-rcar, pci-tegra drivers
use irq chip_data to save the msi_chip pointer. They
already call irq_set_chip_data() in their own MSI irq map
functions. So
On 2014/9/15 22:42, Lucas Stach wrote:
Am Freitag, den 05.09.2014, 18:09 +0800 schrieb Yijing Wang:
Introduce weak arch_find_msi_chip() to find the match msi_chip.
Currently, MSI chip associates pci bus to msi_chip. Because in
ARM platform, there may be more than one MSI controller in system
On 2014/9/16 15:00, Jiang Liu wrote:
On 2014/9/15 10:20, Yijing Wang wrote:
+static void ir_remove_ioapic_hpet_scope(struct intel_iommu *iommu)
+{
+ int i;
- ir_parse_one_hpet_scope(scope, iommu);
- }
- start += scope-length;
- }
+ for (i = 0
#include irq_remapping.h
+typedef int (*dmar_res_handler_t)(struct acpi_dmar_header *, void *);
+struct dmar_res_callback {
+ dmar_res_handler_t cb[ACPI_DMAR_TYPE_RESERVED];
+ void*arg[ACPI_DMAR_TYPE_RESERVED];
+ boolignore_unhandled;
+
arch_teardown_msi_irq() expects to find the msi_chip in the irq
chip_data field. As this means drivers don't have any reasonable other
possibility to stuff things into this field, I think it would make sense
to do the cleanup the other way around: keep the irq_set_chip_data
:
hpet_setup_msi_irq()
x86_msi.setup_hpet_msi()
setup_hpet_msi_remapped()
intel_setup_hpet_msi()
alloc_irte()
Currently, we only call alloc_irte() for hpet MSI, but
do not composed and wrote its msg...
Signed-off-by: Yijing Wang wangyij
On 2014/9/24 5:09, Bjorn Helgaas wrote:
On Fri, Sep 05, 2014 at 06:09:45PM +0800, Yijing Wang wrote:
This series is based Bjorn's pci-next branch + Alexander Gordeev's two
patches
Remove arch_msi_check_device() link: https://lkml.org/lkml/2014/7/12/41
Currently, there are a lot of weak arch
On 2014/9/25 5:56, Rob Roschewsk wrote:
Hello All wonder if there has been any movement on this issue I'm
having a similar issue
I'm running an HP dl380 gen 8 with an Emulex OneConnect 10Gb iSCSI
(14e4:164c) (rev 11)
also known as Hewlett-Packard Company NC373i Integrated
. This patch add
.restore_irq() and .setup_irqs() to make it become more common.
Signed-off-by: Yijing Wang wangyij...@huawei.com
Reviewed-by: Lucas Stach l.st...@pengutronix.de
---
drivers/pci/msi.c | 15 +++
include/linux/msi.h |3 +++
2 files changed, 18 insertions(+), 0
Use MSI chip framework instead of arch MSI functions to configure
MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework.
Signed-off-by: Yijing Wang wangyij...@huawei.com
---
arch/arm/mach-iop13xx/include/mach/pci.h |2 ++
arch/arm/mach-iop13xx/iq81340mc.c|1 +
arch
Currently, PCI drivers will initialize bus-msi in
pcibios_add_bus(). pcibios_add_bus() will be called
in every pci bus initialization. So the bus-msi
assignment in pci_alloc_child_bus() is useless.
Signed-off-by: Yijing Wang wangyij...@huawei.com
CC: Thierry Reding thierry.red...@gmail.com
CC
struct device as the msi_chip argument, we will do that
later in another patchset.
Yijing Wang (22):
PCI/MSI: Clean up struct msi_chip argument
PCI/MSI: Remove useless bus-msi assignment
MSI: Remove the redundant irq_set_chip_data()
x86/xen/MSI: Eliminate arch_msix_mask_irq
1 - 100 of 185 matches
Mail list logo