From: Thomas Gleixner <tglx@linutronix.de> To: LKML <linux-kernel@vger.kernel.org> Cc: x86@kernel.org, Joerg Roedel <joro@8bytes.org>, iommu@lists.linux-foundation.org, linux-hyperv@vger.kernel.org, Haiyang Zhang <haiyangz@microsoft.com>, Jon Derrick <jonathan.derrick@intel.com>, Lu Baolu <baolu.lu@linux.intel.com>, Wei Liu <wei.liu@kernel.org>, "K. Y. Srinivasan" <kys@microsoft.com>, Stephen Hemminger <sthemmin@microsoft.com>, Steve Wahl <steve.wahl@hpe.com>, Dimitri Sivanich <sivanich@hpe.com>, Russ Anderson <rja@hpe.com>, linux-pci@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>, Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stefano Stabellini <sstabellini@kernel.org>, Marc Zyngier <maz@kernel.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, "Rafael J. Wysocki" <rafael@kernel.org>, Megha Dey <megha.dey@intel.com>, Jason Gunthorpe <jgg@mellanox.com>, Dave Jiang <dave.jiang@intel.com>, Alex Williamson <alex.williamson@redhat.com>, Jacob Pan <jacob.jun.pan@intel.com>, Baolu Lu <baolu.lu@intel.com>, Kevin Tian <kevin.tian@intel.com>, Dan Williams <dan.j.williams@intel.com> Subject: [patch V2 14/46] x86/ioapic: Consolidate IOAPIC allocation Date: Wed, 26 Aug 2020 13:16:42 +0200 [thread overview] Message-ID: <20200826112332.054367732@linutronix.de> (raw) In-Reply-To: 20200826111628.794979401@linutronix.de From: Thomas Gleixner <tglx@linutronix.de> Move the IOAPIC specific fields into their own struct and reuse the common devid. Get rid of the #ifdeffery as it does not matter at all whether the alloc info is a couple of bytes longer or not. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- arch/x86/include/asm/hw_irq.h | 23 ++++++----- arch/x86/kernel/apic/io_apic.c | 70 ++++++++++++++++++------------------ arch/x86/kernel/devicetree.c | 4 +- drivers/iommu/amd/iommu.c | 14 +++---- drivers/iommu/hyperv-iommu.c | 2 - drivers/iommu/intel/irq_remapping.c | 18 ++++----- 6 files changed, 66 insertions(+), 65 deletions(-) --- a/arch/x86/include/asm/hw_irq.h +++ b/arch/x86/include/asm/hw_irq.h @@ -44,6 +44,15 @@ enum irq_alloc_type { X86_IRQ_ALLOC_TYPE_HPET_GET_PARENT, }; +struct ioapic_alloc_info { + int pin; + int node; + u32 trigger : 1; + u32 polarity : 1; + u32 valid : 1; + struct IO_APIC_route_entry *entry; +}; + /** * irq_alloc_info - X86 specific interrupt allocation info * @type: X86 specific allocation type @@ -53,6 +62,8 @@ enum irq_alloc_type { * @mask: CPU mask for vector allocation * @desc: Pointer to msi descriptor * @data: Allocation specific data + * + * @ioapic: IOAPIC specific allocation data */ struct irq_alloc_info { enum irq_alloc_type type; @@ -64,6 +75,7 @@ struct irq_alloc_info { void *data; union { + struct ioapic_alloc_info ioapic; int unused; #ifdef CONFIG_PCI_MSI struct { @@ -71,17 +83,6 @@ struct irq_alloc_info { irq_hw_number_t msi_hwirq; }; #endif -#ifdef CONFIG_X86_IO_APIC - struct { - int ioapic_id; - int ioapic_pin; - int ioapic_node; - u32 ioapic_trigger : 1; - u32 ioapic_polarity : 1; - u32 ioapic_valid : 1; - struct IO_APIC_route_entry *ioapic_entry; - }; -#endif #ifdef CONFIG_DMAR_TABLE struct { int dmar_id; --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c @@ -860,10 +860,10 @@ void ioapic_set_alloc_attr(struct irq_al { init_irq_alloc_info(info, NULL); info->type = X86_IRQ_ALLOC_TYPE_IOAPIC; - info->ioapic_node = node; - info->ioapic_trigger = trigger; - info->ioapic_polarity = polarity; - info->ioapic_valid = 1; + info->ioapic.node = node; + info->ioapic.trigger = trigger; + info->ioapic.polarity = polarity; + info->ioapic.valid = 1; } #ifndef CONFIG_ACPI @@ -878,32 +878,32 @@ static void ioapic_copy_alloc_attr(struc copy_irq_alloc_info(dst, src); dst->type = X86_IRQ_ALLOC_TYPE_IOAPIC; - dst->ioapic_id = mpc_ioapic_id(ioapic_idx); - dst->ioapic_pin = pin; - dst->ioapic_valid = 1; - if (src && src->ioapic_valid) { - dst->ioapic_node = src->ioapic_node; - dst->ioapic_trigger = src->ioapic_trigger; - dst->ioapic_polarity = src->ioapic_polarity; + dst->devid = mpc_ioapic_id(ioapic_idx); + dst->ioapic.pin = pin; + dst->ioapic.valid = 1; + if (src && src->ioapic.valid) { + dst->ioapic.node = src->ioapic.node; + dst->ioapic.trigger = src->ioapic.trigger; + dst->ioapic.polarity = src->ioapic.polarity; } else { - dst->ioapic_node = NUMA_NO_NODE; + dst->ioapic.node = NUMA_NO_NODE; if (acpi_get_override_irq(gsi, &trigger, &polarity) >= 0) { - dst->ioapic_trigger = trigger; - dst->ioapic_polarity = polarity; + dst->ioapic.trigger = trigger; + dst->ioapic.polarity = polarity; } else { /* * PCI interrupts are always active low level * triggered. */ - dst->ioapic_trigger = IOAPIC_LEVEL; - dst->ioapic_polarity = IOAPIC_POL_LOW; + dst->ioapic.trigger = IOAPIC_LEVEL; + dst->ioapic.polarity = IOAPIC_POL_LOW; } } } static int ioapic_alloc_attr_node(struct irq_alloc_info *info) { - return (info && info->ioapic_valid) ? info->ioapic_node : NUMA_NO_NODE; + return (info && info->ioapic.valid) ? info->ioapic.node : NUMA_NO_NODE; } static void mp_register_handler(unsigned int irq, unsigned long trigger) @@ -933,14 +933,14 @@ static bool mp_check_pin_attr(int irq, s * pin with real trigger and polarity attributes. */ if (irq < nr_legacy_irqs() && data->count == 1) { - if (info->ioapic_trigger != data->trigger) - mp_register_handler(irq, info->ioapic_trigger); - data->entry.trigger = data->trigger = info->ioapic_trigger; - data->entry.polarity = data->polarity = info->ioapic_polarity; + if (info->ioapic.trigger != data->trigger) + mp_register_handler(irq, info->ioapic.trigger); + data->entry.trigger = data->trigger = info->ioapic.trigger; + data->entry.polarity = data->polarity = info->ioapic.polarity; } - return data->trigger == info->ioapic_trigger && - data->polarity == info->ioapic_polarity; + return data->trigger == info->ioapic.trigger && + data->polarity == info->ioapic.polarity; } static int alloc_irq_from_domain(struct irq_domain *domain, int ioapic, u32 gsi, @@ -1002,7 +1002,7 @@ static int alloc_isa_irq_from_domain(str if (!mp_check_pin_attr(irq, info)) return -EBUSY; if (__add_pin_to_irq_node(irq_data->chip_data, node, ioapic, - info->ioapic_pin)) + info->ioapic.pin)) return -ENOMEM; } else { info->flags |= X86_IRQ_ALLOC_LEGACY; @@ -2092,8 +2092,8 @@ static int mp_alloc_timer_irq(int ioapic struct irq_alloc_info info; ioapic_set_alloc_attr(&info, NUMA_NO_NODE, 0, 0); - info.ioapic_id = mpc_ioapic_id(ioapic); - info.ioapic_pin = pin; + info.devid = mpc_ioapic_id(ioapic); + info.ioapic.pin = pin; mutex_lock(&ioapic_mutex); irq = alloc_isa_irq_from_domain(domain, 0, ioapic, pin, &info); mutex_unlock(&ioapic_mutex); @@ -2297,7 +2297,7 @@ static int mp_irqdomain_create(int ioapi init_irq_alloc_info(&info, NULL); info.type = X86_IRQ_ALLOC_TYPE_IOAPIC_GET_PARENT; - info.ioapic_id = mpc_ioapic_id(ioapic); + info.devid = mpc_ioapic_id(ioapic); parent = irq_remapping_get_irq_domain(&info); if (!parent) parent = x86_vector_domain; @@ -2932,9 +2932,9 @@ int mp_ioapic_registered(u32 gsi_base) static void mp_irqdomain_get_attr(u32 gsi, struct mp_chip_data *data, struct irq_alloc_info *info) { - if (info && info->ioapic_valid) { - data->trigger = info->ioapic_trigger; - data->polarity = info->ioapic_polarity; + if (info && info->ioapic.valid) { + data->trigger = info->ioapic.trigger; + data->polarity = info->ioapic.polarity; } else if (acpi_get_override_irq(gsi, &data->trigger, &data->polarity) < 0) { /* PCI interrupts are always active low level triggered. */ @@ -2980,7 +2980,7 @@ int mp_irqdomain_alloc(struct irq_domain return -EINVAL; ioapic = mp_irqdomain_ioapic_idx(domain); - pin = info->ioapic_pin; + pin = info->ioapic.pin; if (irq_find_mapping(domain, (irq_hw_number_t)pin) > 0) return -EEXIST; @@ -2988,7 +2988,7 @@ int mp_irqdomain_alloc(struct irq_domain if (!data) return -ENOMEM; - info->ioapic_entry = &data->entry; + info->ioapic.entry = &data->entry; ret = irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, info); if (ret < 0) { kfree(data); @@ -2996,7 +2996,7 @@ int mp_irqdomain_alloc(struct irq_domain } INIT_LIST_HEAD(&data->irq_2_pin); - irq_data->hwirq = info->ioapic_pin; + irq_data->hwirq = info->ioapic.pin; irq_data->chip = (domain->parent == x86_vector_domain) ? &ioapic_chip : &ioapic_ir_chip; irq_data->chip_data = data; @@ -3006,8 +3006,8 @@ int mp_irqdomain_alloc(struct irq_domain add_pin_to_irq_node(data, ioapic_alloc_attr_node(info), ioapic, pin); local_irq_save(flags); - if (info->ioapic_entry) - mp_setup_entry(cfg, data, info->ioapic_entry); + if (info->ioapic.entry) + mp_setup_entry(cfg, data, info->ioapic.entry); mp_register_handler(virq, data->trigger); if (virq < nr_legacy_irqs()) legacy_pic->mask(virq); --- a/arch/x86/kernel/devicetree.c +++ b/arch/x86/kernel/devicetree.c @@ -229,8 +229,8 @@ static int dt_irqdomain_alloc(struct irq it = &of_ioapic_type[type_index]; ioapic_set_alloc_attr(&tmp, NUMA_NO_NODE, it->trigger, it->polarity); - tmp.ioapic_id = mpc_ioapic_id(mp_irqdomain_ioapic_idx(domain)); - tmp.ioapic_pin = fwspec->param[0]; + tmp.devid = mpc_ioapic_id(mp_irqdomain_ioapic_idx(domain)); + tmp.ioapic.pin = fwspec->param[0]; return mp_irqdomain_alloc(domain, virq, nr_irqs, &tmp); } --- a/drivers/iommu/amd/iommu.c +++ b/drivers/iommu/amd/iommu.c @@ -3508,7 +3508,7 @@ static int get_devid(struct irq_alloc_in switch (info->type) { case X86_IRQ_ALLOC_TYPE_IOAPIC: case X86_IRQ_ALLOC_TYPE_IOAPIC_GET_PARENT: - return get_ioapic_devid(info->ioapic_id); + return get_ioapic_devid(info->devid); case X86_IRQ_ALLOC_TYPE_HPET: case X86_IRQ_ALLOC_TYPE_HPET_GET_PARENT: return get_hpet_devid(info->devid); @@ -3586,15 +3586,15 @@ static void irq_remapping_prepare_irte(s switch (info->type) { case X86_IRQ_ALLOC_TYPE_IOAPIC: /* Setup IOAPIC entry */ - entry = info->ioapic_entry; - info->ioapic_entry = NULL; + entry = info->ioapic.entry; + info->ioapic.entry = NULL; memset(entry, 0, sizeof(*entry)); entry->vector = index; entry->mask = 0; - entry->trigger = info->ioapic_trigger; - entry->polarity = info->ioapic_polarity; + entry->trigger = info->ioapic.trigger; + entry->polarity = info->ioapic.polarity; /* Mask level triggered irqs. */ - if (info->ioapic_trigger) + if (info->ioapic.trigger) entry->mask = 1; break; @@ -3680,7 +3680,7 @@ static int irq_remapping_alloc(struct ir iommu->irte_ops->set_allocated(table, i); } WARN_ON(table->min_index != 32); - index = info->ioapic_pin; + index = info->ioapic.pin; } else { index = -ENOMEM; } --- a/drivers/iommu/hyperv-iommu.c +++ b/drivers/iommu/hyperv-iommu.c @@ -101,7 +101,7 @@ static int hyperv_irq_remapping_alloc(st * in the chip_data and hyperv_irq_remapping_activate()/hyperv_ir_set_ * affinity() set vector and dest_apicid directly into IO-APIC entry. */ - irq_data->chip_data = info->ioapic_entry; + irq_data->chip_data = info->ioapic.entry; /* * Hypver-V IO APIC irq affinity should be in the scope of --- a/drivers/iommu/intel/irq_remapping.c +++ b/drivers/iommu/intel/irq_remapping.c @@ -1113,7 +1113,7 @@ static struct irq_domain *intel_get_irq_ switch (info->type) { case X86_IRQ_ALLOC_TYPE_IOAPIC_GET_PARENT: - return map_ioapic_to_ir(info->ioapic_id); + return map_ioapic_to_ir(info->devid); case X86_IRQ_ALLOC_TYPE_HPET_GET_PARENT: return map_hpet_to_ir(info->devid); case X86_IRQ_ALLOC_TYPE_PCI_MSI: @@ -1254,16 +1254,16 @@ static void intel_irq_remapping_prepare_ switch (info->type) { case X86_IRQ_ALLOC_TYPE_IOAPIC: /* Set source-id of interrupt request */ - set_ioapic_sid(irte, info->ioapic_id); + set_ioapic_sid(irte, info->devid); apic_printk(APIC_VERBOSE, KERN_DEBUG "IOAPIC[%d]: Set IRTE entry (P:%d FPD:%d Dst_Mode:%d Redir_hint:%d Trig_Mode:%d Dlvry_Mode:%X Avail:%X Vector:%02X Dest:%08X SID:%04X SQ:%X SVT:%X)\n", - info->ioapic_id, irte->present, irte->fpd, + info->devid, irte->present, irte->fpd, irte->dst_mode, irte->redir_hint, irte->trigger_mode, irte->dlvry_mode, irte->avail, irte->vector, irte->dest_id, irte->sid, irte->sq, irte->svt); - entry = (struct IR_IO_APIC_route_entry *)info->ioapic_entry; - info->ioapic_entry = NULL; + entry = (struct IR_IO_APIC_route_entry *)info->ioapic.entry; + info->ioapic.entry = NULL; memset(entry, 0, sizeof(*entry)); entry->index2 = (index >> 15) & 0x1; entry->zero = 0; @@ -1273,11 +1273,11 @@ static void intel_irq_remapping_prepare_ * IO-APIC RTE will be configured with virtual vector. * irq handler will do the explicit EOI to the io-apic. */ - entry->vector = info->ioapic_pin; + entry->vector = info->ioapic.pin; entry->mask = 0; /* enable IRQ */ - entry->trigger = info->ioapic_trigger; - entry->polarity = info->ioapic_polarity; - if (info->ioapic_trigger) + entry->trigger = info->ioapic.trigger; + entry->polarity = info->ioapic.polarity; + if (info->ioapic.trigger) entry->mask = 1; /* Mask level triggered irqs. */ break;
WARNING: multiple messages have this Message-ID (diff)
From: Thomas Gleixner <tglx@linutronix.de> To: LKML <linux-kernel@vger.kernel.org> Cc: Dimitri Sivanich <sivanich@hpe.com>, linux-hyperv@vger.kernel.org, Steve Wahl <steve.wahl@hpe.com>, linux-pci@vger.kernel.org, "K. Y. Srinivasan" <kys@microsoft.com>, Dan Williams <dan.j.williams@intel.com>, Wei Liu <wei.liu@kernel.org>, Stephen Hemminger <sthemmin@microsoft.com>, Baolu Lu <baolu.lu@intel.com>, Marc Zyngier <maz@kernel.org>, x86@kernel.org, Jason Gunthorpe <jgg@mellanox.com>, Megha Dey <megha.dey@intel.com>, xen-devel@lists.xenproject.org, Kevin Tian <kevin.tian@intel.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Haiyang Zhang <haiyangz@microsoft.com>, Alex Williamson <alex.williamson@redhat.com>, Stefano Stabellini <sstabellini@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>, Dave Jiang <dave.jiang@intel.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Jon Derrick <jonathan.derrick@intel.com>, Juergen Gross <jgross@suse.com>, Russ Anderson <rja@hpe.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, iommu@lists.linux-foundation.org, Jacob Pan <jacob.jun.pan@intel.com>, "Rafael J. Wysocki" <rafael@kernel.org> Subject: [patch V2 14/46] x86/ioapic: Consolidate IOAPIC allocation Date: Wed, 26 Aug 2020 13:16:42 +0200 [thread overview] Message-ID: <20200826112332.054367732@linutronix.de> (raw) In-Reply-To: 20200826111628.794979401@linutronix.de From: Thomas Gleixner <tglx@linutronix.de> Move the IOAPIC specific fields into their own struct and reuse the common devid. Get rid of the #ifdeffery as it does not matter at all whether the alloc info is a couple of bytes longer or not. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- arch/x86/include/asm/hw_irq.h | 23 ++++++----- arch/x86/kernel/apic/io_apic.c | 70 ++++++++++++++++++------------------ arch/x86/kernel/devicetree.c | 4 +- drivers/iommu/amd/iommu.c | 14 +++---- drivers/iommu/hyperv-iommu.c | 2 - drivers/iommu/intel/irq_remapping.c | 18 ++++----- 6 files changed, 66 insertions(+), 65 deletions(-) --- a/arch/x86/include/asm/hw_irq.h +++ b/arch/x86/include/asm/hw_irq.h @@ -44,6 +44,15 @@ enum irq_alloc_type { X86_IRQ_ALLOC_TYPE_HPET_GET_PARENT, }; +struct ioapic_alloc_info { + int pin; + int node; + u32 trigger : 1; + u32 polarity : 1; + u32 valid : 1; + struct IO_APIC_route_entry *entry; +}; + /** * irq_alloc_info - X86 specific interrupt allocation info * @type: X86 specific allocation type @@ -53,6 +62,8 @@ enum irq_alloc_type { * @mask: CPU mask for vector allocation * @desc: Pointer to msi descriptor * @data: Allocation specific data + * + * @ioapic: IOAPIC specific allocation data */ struct irq_alloc_info { enum irq_alloc_type type; @@ -64,6 +75,7 @@ struct irq_alloc_info { void *data; union { + struct ioapic_alloc_info ioapic; int unused; #ifdef CONFIG_PCI_MSI struct { @@ -71,17 +83,6 @@ struct irq_alloc_info { irq_hw_number_t msi_hwirq; }; #endif -#ifdef CONFIG_X86_IO_APIC - struct { - int ioapic_id; - int ioapic_pin; - int ioapic_node; - u32 ioapic_trigger : 1; - u32 ioapic_polarity : 1; - u32 ioapic_valid : 1; - struct IO_APIC_route_entry *ioapic_entry; - }; -#endif #ifdef CONFIG_DMAR_TABLE struct { int dmar_id; --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c @@ -860,10 +860,10 @@ void ioapic_set_alloc_attr(struct irq_al { init_irq_alloc_info(info, NULL); info->type = X86_IRQ_ALLOC_TYPE_IOAPIC; - info->ioapic_node = node; - info->ioapic_trigger = trigger; - info->ioapic_polarity = polarity; - info->ioapic_valid = 1; + info->ioapic.node = node; + info->ioapic.trigger = trigger; + info->ioapic.polarity = polarity; + info->ioapic.valid = 1; } #ifndef CONFIG_ACPI @@ -878,32 +878,32 @@ static void ioapic_copy_alloc_attr(struc copy_irq_alloc_info(dst, src); dst->type = X86_IRQ_ALLOC_TYPE_IOAPIC; - dst->ioapic_id = mpc_ioapic_id(ioapic_idx); - dst->ioapic_pin = pin; - dst->ioapic_valid = 1; - if (src && src->ioapic_valid) { - dst->ioapic_node = src->ioapic_node; - dst->ioapic_trigger = src->ioapic_trigger; - dst->ioapic_polarity = src->ioapic_polarity; + dst->devid = mpc_ioapic_id(ioapic_idx); + dst->ioapic.pin = pin; + dst->ioapic.valid = 1; + if (src && src->ioapic.valid) { + dst->ioapic.node = src->ioapic.node; + dst->ioapic.trigger = src->ioapic.trigger; + dst->ioapic.polarity = src->ioapic.polarity; } else { - dst->ioapic_node = NUMA_NO_NODE; + dst->ioapic.node = NUMA_NO_NODE; if (acpi_get_override_irq(gsi, &trigger, &polarity) >= 0) { - dst->ioapic_trigger = trigger; - dst->ioapic_polarity = polarity; + dst->ioapic.trigger = trigger; + dst->ioapic.polarity = polarity; } else { /* * PCI interrupts are always active low level * triggered. */ - dst->ioapic_trigger = IOAPIC_LEVEL; - dst->ioapic_polarity = IOAPIC_POL_LOW; + dst->ioapic.trigger = IOAPIC_LEVEL; + dst->ioapic.polarity = IOAPIC_POL_LOW; } } } static int ioapic_alloc_attr_node(struct irq_alloc_info *info) { - return (info && info->ioapic_valid) ? info->ioapic_node : NUMA_NO_NODE; + return (info && info->ioapic.valid) ? info->ioapic.node : NUMA_NO_NODE; } static void mp_register_handler(unsigned int irq, unsigned long trigger) @@ -933,14 +933,14 @@ static bool mp_check_pin_attr(int irq, s * pin with real trigger and polarity attributes. */ if (irq < nr_legacy_irqs() && data->count == 1) { - if (info->ioapic_trigger != data->trigger) - mp_register_handler(irq, info->ioapic_trigger); - data->entry.trigger = data->trigger = info->ioapic_trigger; - data->entry.polarity = data->polarity = info->ioapic_polarity; + if (info->ioapic.trigger != data->trigger) + mp_register_handler(irq, info->ioapic.trigger); + data->entry.trigger = data->trigger = info->ioapic.trigger; + data->entry.polarity = data->polarity = info->ioapic.polarity; } - return data->trigger == info->ioapic_trigger && - data->polarity == info->ioapic_polarity; + return data->trigger == info->ioapic.trigger && + data->polarity == info->ioapic.polarity; } static int alloc_irq_from_domain(struct irq_domain *domain, int ioapic, u32 gsi, @@ -1002,7 +1002,7 @@ static int alloc_isa_irq_from_domain(str if (!mp_check_pin_attr(irq, info)) return -EBUSY; if (__add_pin_to_irq_node(irq_data->chip_data, node, ioapic, - info->ioapic_pin)) + info->ioapic.pin)) return -ENOMEM; } else { info->flags |= X86_IRQ_ALLOC_LEGACY; @@ -2092,8 +2092,8 @@ static int mp_alloc_timer_irq(int ioapic struct irq_alloc_info info; ioapic_set_alloc_attr(&info, NUMA_NO_NODE, 0, 0); - info.ioapic_id = mpc_ioapic_id(ioapic); - info.ioapic_pin = pin; + info.devid = mpc_ioapic_id(ioapic); + info.ioapic.pin = pin; mutex_lock(&ioapic_mutex); irq = alloc_isa_irq_from_domain(domain, 0, ioapic, pin, &info); mutex_unlock(&ioapic_mutex); @@ -2297,7 +2297,7 @@ static int mp_irqdomain_create(int ioapi init_irq_alloc_info(&info, NULL); info.type = X86_IRQ_ALLOC_TYPE_IOAPIC_GET_PARENT; - info.ioapic_id = mpc_ioapic_id(ioapic); + info.devid = mpc_ioapic_id(ioapic); parent = irq_remapping_get_irq_domain(&info); if (!parent) parent = x86_vector_domain; @@ -2932,9 +2932,9 @@ int mp_ioapic_registered(u32 gsi_base) static void mp_irqdomain_get_attr(u32 gsi, struct mp_chip_data *data, struct irq_alloc_info *info) { - if (info && info->ioapic_valid) { - data->trigger = info->ioapic_trigger; - data->polarity = info->ioapic_polarity; + if (info && info->ioapic.valid) { + data->trigger = info->ioapic.trigger; + data->polarity = info->ioapic.polarity; } else if (acpi_get_override_irq(gsi, &data->trigger, &data->polarity) < 0) { /* PCI interrupts are always active low level triggered. */ @@ -2980,7 +2980,7 @@ int mp_irqdomain_alloc(struct irq_domain return -EINVAL; ioapic = mp_irqdomain_ioapic_idx(domain); - pin = info->ioapic_pin; + pin = info->ioapic.pin; if (irq_find_mapping(domain, (irq_hw_number_t)pin) > 0) return -EEXIST; @@ -2988,7 +2988,7 @@ int mp_irqdomain_alloc(struct irq_domain if (!data) return -ENOMEM; - info->ioapic_entry = &data->entry; + info->ioapic.entry = &data->entry; ret = irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, info); if (ret < 0) { kfree(data); @@ -2996,7 +2996,7 @@ int mp_irqdomain_alloc(struct irq_domain } INIT_LIST_HEAD(&data->irq_2_pin); - irq_data->hwirq = info->ioapic_pin; + irq_data->hwirq = info->ioapic.pin; irq_data->chip = (domain->parent == x86_vector_domain) ? &ioapic_chip : &ioapic_ir_chip; irq_data->chip_data = data; @@ -3006,8 +3006,8 @@ int mp_irqdomain_alloc(struct irq_domain add_pin_to_irq_node(data, ioapic_alloc_attr_node(info), ioapic, pin); local_irq_save(flags); - if (info->ioapic_entry) - mp_setup_entry(cfg, data, info->ioapic_entry); + if (info->ioapic.entry) + mp_setup_entry(cfg, data, info->ioapic.entry); mp_register_handler(virq, data->trigger); if (virq < nr_legacy_irqs()) legacy_pic->mask(virq); --- a/arch/x86/kernel/devicetree.c +++ b/arch/x86/kernel/devicetree.c @@ -229,8 +229,8 @@ static int dt_irqdomain_alloc(struct irq it = &of_ioapic_type[type_index]; ioapic_set_alloc_attr(&tmp, NUMA_NO_NODE, it->trigger, it->polarity); - tmp.ioapic_id = mpc_ioapic_id(mp_irqdomain_ioapic_idx(domain)); - tmp.ioapic_pin = fwspec->param[0]; + tmp.devid = mpc_ioapic_id(mp_irqdomain_ioapic_idx(domain)); + tmp.ioapic.pin = fwspec->param[0]; return mp_irqdomain_alloc(domain, virq, nr_irqs, &tmp); } --- a/drivers/iommu/amd/iommu.c +++ b/drivers/iommu/amd/iommu.c @@ -3508,7 +3508,7 @@ static int get_devid(struct irq_alloc_in switch (info->type) { case X86_IRQ_ALLOC_TYPE_IOAPIC: case X86_IRQ_ALLOC_TYPE_IOAPIC_GET_PARENT: - return get_ioapic_devid(info->ioapic_id); + return get_ioapic_devid(info->devid); case X86_IRQ_ALLOC_TYPE_HPET: case X86_IRQ_ALLOC_TYPE_HPET_GET_PARENT: return get_hpet_devid(info->devid); @@ -3586,15 +3586,15 @@ static void irq_remapping_prepare_irte(s switch (info->type) { case X86_IRQ_ALLOC_TYPE_IOAPIC: /* Setup IOAPIC entry */ - entry = info->ioapic_entry; - info->ioapic_entry = NULL; + entry = info->ioapic.entry; + info->ioapic.entry = NULL; memset(entry, 0, sizeof(*entry)); entry->vector = index; entry->mask = 0; - entry->trigger = info->ioapic_trigger; - entry->polarity = info->ioapic_polarity; + entry->trigger = info->ioapic.trigger; + entry->polarity = info->ioapic.polarity; /* Mask level triggered irqs. */ - if (info->ioapic_trigger) + if (info->ioapic.trigger) entry->mask = 1; break; @@ -3680,7 +3680,7 @@ static int irq_remapping_alloc(struct ir iommu->irte_ops->set_allocated(table, i); } WARN_ON(table->min_index != 32); - index = info->ioapic_pin; + index = info->ioapic.pin; } else { index = -ENOMEM; } --- a/drivers/iommu/hyperv-iommu.c +++ b/drivers/iommu/hyperv-iommu.c @@ -101,7 +101,7 @@ static int hyperv_irq_remapping_alloc(st * in the chip_data and hyperv_irq_remapping_activate()/hyperv_ir_set_ * affinity() set vector and dest_apicid directly into IO-APIC entry. */ - irq_data->chip_data = info->ioapic_entry; + irq_data->chip_data = info->ioapic.entry; /* * Hypver-V IO APIC irq affinity should be in the scope of --- a/drivers/iommu/intel/irq_remapping.c +++ b/drivers/iommu/intel/irq_remapping.c @@ -1113,7 +1113,7 @@ static struct irq_domain *intel_get_irq_ switch (info->type) { case X86_IRQ_ALLOC_TYPE_IOAPIC_GET_PARENT: - return map_ioapic_to_ir(info->ioapic_id); + return map_ioapic_to_ir(info->devid); case X86_IRQ_ALLOC_TYPE_HPET_GET_PARENT: return map_hpet_to_ir(info->devid); case X86_IRQ_ALLOC_TYPE_PCI_MSI: @@ -1254,16 +1254,16 @@ static void intel_irq_remapping_prepare_ switch (info->type) { case X86_IRQ_ALLOC_TYPE_IOAPIC: /* Set source-id of interrupt request */ - set_ioapic_sid(irte, info->ioapic_id); + set_ioapic_sid(irte, info->devid); apic_printk(APIC_VERBOSE, KERN_DEBUG "IOAPIC[%d]: Set IRTE entry (P:%d FPD:%d Dst_Mode:%d Redir_hint:%d Trig_Mode:%d Dlvry_Mode:%X Avail:%X Vector:%02X Dest:%08X SID:%04X SQ:%X SVT:%X)\n", - info->ioapic_id, irte->present, irte->fpd, + info->devid, irte->present, irte->fpd, irte->dst_mode, irte->redir_hint, irte->trigger_mode, irte->dlvry_mode, irte->avail, irte->vector, irte->dest_id, irte->sid, irte->sq, irte->svt); - entry = (struct IR_IO_APIC_route_entry *)info->ioapic_entry; - info->ioapic_entry = NULL; + entry = (struct IR_IO_APIC_route_entry *)info->ioapic.entry; + info->ioapic.entry = NULL; memset(entry, 0, sizeof(*entry)); entry->index2 = (index >> 15) & 0x1; entry->zero = 0; @@ -1273,11 +1273,11 @@ static void intel_irq_remapping_prepare_ * IO-APIC RTE will be configured with virtual vector. * irq handler will do the explicit EOI to the io-apic. */ - entry->vector = info->ioapic_pin; + entry->vector = info->ioapic.pin; entry->mask = 0; /* enable IRQ */ - entry->trigger = info->ioapic_trigger; - entry->polarity = info->ioapic_polarity; - if (info->ioapic_trigger) + entry->trigger = info->ioapic.trigger; + entry->polarity = info->ioapic.polarity; + if (info->ioapic.trigger) entry->mask = 1; /* Mask level triggered irqs. */ break; _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
next prev parent reply other threads:[~2020-08-26 12:14 UTC|newest] Thread overview: 294+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-08-26 11:16 [patch V2 00/46] x86, PCI, XEN, genirq ...: Prepare for device MSI Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-08-26 11:16 ` [patch V2 01/46] iommu/amd: Prevent NULL pointer dereference Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-08-27 14:57 ` Joerg Roedel 2020-08-27 14:57 ` Joerg Roedel 2020-08-26 11:16 ` [patch V2 02/46] x86/init: Remove unused init ops Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 03/46] PCI: vmd: Dont abuse vector irqomain as parent Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 04/46] genirq/chip: Use the first chip in irq_chip_compose_msi_msg() Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-08-26 19:50 ` Marc Zyngier 2020-08-26 19:50 ` Marc Zyngier 2020-08-26 21:19 ` Thomas Gleixner 2020-08-26 21:19 ` Thomas Gleixner 2020-08-26 21:32 ` Marc Zyngier 2020-08-26 21:32 ` Marc Zyngier 2020-08-26 11:16 ` [patch V2 05/46] x86/msi: Move compose message callback where it belongs Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 06/46] x86/msi: Remove pointless vcpu_affinity callback Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 07/46] x86/irq: Rename X86_IRQ_ALLOC_TYPE_MSI* to reflect PCI dependency Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] x86_irq_Rename_X86_IRQ_ALLOC_TYPE_MSI_to_reflect_PCI_dependency tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 08/46] x86/irq: Add allocation type for parent domain retrieval Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 09/46] iommu/vt-d: Consolidate irq domain getter Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 10/46] iommu/amd: " Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 11/46] iommu/irq_remapping: Consolidate irq domain lookup Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 12/46] x86/irq: Prepare consolidation of irq_alloc_info Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 13/46] x86/msi: Consolidate HPET allocation Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner [this message] 2020-08-26 11:16 ` [patch V2 14/46] x86/ioapic: Consolidate IOAPIC allocation Thomas Gleixner 2020-09-08 13:35 ` Wei Liu 2020-09-08 13:35 ` Wei Liu 2020-09-16 15:12 ` [tip: x86/irq] x86_ioapic_Consolidate_IOAPIC_allocation tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 15/46] x86/irq: Consolidate DMAR irq allocation Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-08-26 16:50 ` Dey, Megha 2020-08-26 16:50 ` Dey, Megha 2020-08-26 16:50 ` Dey, Megha 2020-08-26 18:32 ` Thomas Gleixner 2020-08-26 18:32 ` Thomas Gleixner 2020-08-26 20:50 ` Thomas Gleixner 2020-08-26 20:50 ` Thomas Gleixner 2020-08-28 0:12 ` Dey, Megha 2020-08-28 0:12 ` Dey, Megha 2020-08-28 0:12 ` Dey, Megha 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 16/46] x86/irq: Consolidate UV domain allocation Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 17/46] PCI/MSI: Rework pci_msi_domain_calc_hwirq() Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-08-26 20:24 ` Marc Zyngier 2020-08-26 20:24 ` Marc Zyngier 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 18/46] x86/msi: Consolidate MSI allocation Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-08 13:36 ` Wei Liu 2020-09-08 13:36 ` Wei Liu 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 19/46] x86/msi: Use generic MSI domain ops Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-08-26 20:21 ` Marc Zyngier 2020-08-26 20:21 ` Marc Zyngier 2020-08-26 20:43 ` Thomas Gleixner 2020-08-26 20:43 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 20/46] x86/irq: Move apic_post_init() invocation to one place Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 21/46] x86/pci: Reducde #ifdeffery in PCI init code Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 22/46] x86/irq: Initialize PCI/MSI domain at PCI init time Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 23/46] irqdomain/msi: Provide DOMAIN_BUS_VMD_MSI Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-08-26 20:42 ` Marc Zyngier 2020-08-26 20:42 ` Marc Zyngier 2020-08-26 20:57 ` Derrick, Jonathan 2020-08-26 20:57 ` Derrick, Jonathan 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 24/46] PCI: vmd: Mark VMD irqdomain with DOMAIN_BUS_VMD_MSI Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-08-26 20:47 ` Marc Zyngier 2020-08-26 20:47 ` Marc Zyngier 2020-08-31 14:39 ` Jason Gunthorpe 2020-08-31 14:39 ` Jason Gunthorpe 2020-09-30 12:45 ` Derrick, Jonathan 2020-09-30 12:45 ` Derrick, Jonathan 2020-09-30 12:57 ` Jason Gunthorpe 2020-09-30 12:57 ` Jason Gunthorpe 2020-09-30 13:08 ` Derrick, Jonathan 2020-09-30 13:08 ` Derrick, Jonathan 2020-09-30 18:47 ` Jason Gunthorpe 2020-09-30 18:47 ` Jason Gunthorpe 2020-09-16 15:12 ` [tip: x86/irq] PCI_vmd_Mark_VMD_irqdomain_with_DOMAIN_BUS_VMD_MSI tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 25/46] PCI/MSI: Provide pci_dev_has_special_msi_domain() helper Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 26/46] x86/xen: Make xen_msi_init() static and rename it to xen_hvm_msi_init() Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 27/46] x86/xen: Rework MSI teardown Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-08-27 7:46 ` Jürgen Groß 2020-08-27 7:46 ` Jürgen Groß 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 28/46] x86/xen: Consolidate XEN-MSI init Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-08-27 7:47 ` Jürgen Groß 2020-08-27 7:47 ` Jürgen Groß 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 29/46] irqdomain/msi: Allow to override msi_domain_alloc/free_irqs() Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-08-26 19:06 ` Marc Zyngier 2020-08-26 19:06 ` Marc Zyngier 2020-08-26 19:47 ` Thomas Gleixner 2020-08-26 19:47 ` Thomas Gleixner 2020-08-26 21:33 ` Marc Zyngier 2020-08-26 21:33 ` Marc Zyngier 2020-08-28 0:24 ` Dey, Megha 2020-08-28 0:24 ` Dey, Megha 2020-08-28 0:24 ` Dey, Megha 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:16 ` [patch V2 30/46] x86/xen: Wrap XEN MSI management into irqdomain Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2023-01-15 14:12 ` [patch V2 30/46] " David Woodhouse 2023-01-15 20:27 ` David Woodhouse 2020-08-26 11:16 ` [patch V2 31/46] iommm/vt-d: Store irq domain in struct device Thomas Gleixner 2020-08-26 11:16 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:17 ` [patch V2 32/46] iommm/amd: " Thomas Gleixner 2020-08-26 11:17 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:17 ` [patch V2 33/46] x86/pci: Set default irq domain in pcibios_add_device() Thomas Gleixner 2020-08-26 11:17 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:17 ` [patch V2 34/46] PCI/MSI: Make arch_.*_msi_irq[s] fallbacks selectable Thomas Gleixner 2020-08-26 11:17 ` Thomas Gleixner 2020-08-26 15:34 ` kernel test robot 2020-08-26 15:53 ` Thomas Gleixner 2020-08-26 15:53 ` Thomas Gleixner 2020-08-26 16:23 ` kernel test robot 2020-08-26 21:14 ` Marc Zyngier 2020-08-26 21:14 ` Marc Zyngier 2020-08-26 21:27 ` Thomas Gleixner 2020-08-26 21:27 ` Thomas Gleixner 2020-08-27 18:20 ` Bjorn Helgaas 2020-08-27 18:20 ` Bjorn Helgaas 2020-08-28 11:21 ` Lorenzo Pieralisi 2020-08-28 11:21 ` Lorenzo Pieralisi 2020-08-28 12:19 ` Jason Gunthorpe 2020-08-28 12:19 ` Jason Gunthorpe 2020-08-28 12:19 ` Jason Gunthorpe 2020-08-28 12:19 ` Jason Gunthorpe 2020-08-28 12:47 ` Marc Zyngier 2020-08-28 12:47 ` Marc Zyngier 2020-08-28 12:54 ` Jason Gunthorpe 2020-08-28 12:54 ` Jason Gunthorpe 2020-08-28 12:54 ` Jason Gunthorpe 2020-08-28 13:52 ` Marc Zyngier 2020-08-28 13:52 ` Marc Zyngier 2020-08-28 18:29 ` Thomas Gleixner 2020-08-28 18:29 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-09-25 13:54 ` [patch V2 34/46] " Qian Cai 2020-09-25 13:54 ` Qian Cai 2020-09-25 13:54 ` Qian Cai 2020-09-26 12:38 ` Vasily Gorbik 2020-09-26 12:38 ` Vasily Gorbik 2020-09-28 10:11 ` Thomas Gleixner 2020-09-28 10:11 ` Thomas Gleixner 2020-08-26 11:17 ` [patch V2 35/46] x86/irq: Cleanup the arch_*_msi_irqs() leftovers Thomas Gleixner 2020-08-26 11:17 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:17 ` [patch V2 36/46] x86/irq: Make most MSI ops XEN private Thomas Gleixner 2020-08-26 11:17 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:17 ` [patch V2 37/46] iommu/vt-d: Remove domain search for PCI/MSI[X] Thomas Gleixner 2020-08-26 11:17 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:17 ` [patch V2 38/46] iommu/amd: Remove domain search for PCI/MSI Thomas Gleixner 2020-08-26 11:17 ` Thomas Gleixner 2020-09-16 15:12 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-08-26 11:17 ` [patch V2 39/46] x86/irq: Add DEV_MSI allocation type Thomas Gleixner 2020-08-26 11:17 ` Thomas Gleixner 2020-08-26 11:17 ` [patch V2 40/46] x86/msi: Rename and rework pci_msi_prepare() to cover non-PCI MSI Thomas Gleixner 2020-08-26 11:17 ` Thomas Gleixner 2020-08-26 11:17 ` [patch V2 41/46] platform-msi: Provide default irq_chip:: Ack Thomas Gleixner 2020-08-26 11:17 ` Thomas Gleixner 2020-08-26 21:25 ` Marc Zyngier 2020-08-26 21:25 ` Marc Zyngier 2020-08-26 11:17 ` [patch V2 42/46] genirq/proc: Take buslock on affinity write Thomas Gleixner 2020-08-26 11:17 ` Thomas Gleixner 2020-08-26 11:17 ` [patch V2 43/46] genirq/msi: Provide and use msi_domain_set_default_info_flags() Thomas Gleixner 2020-08-26 11:17 ` Thomas Gleixner 2020-08-27 8:17 ` Marc Zyngier 2020-08-27 8:17 ` Marc Zyngier 2020-08-28 18:42 ` Thomas Gleixner 2020-08-28 18:42 ` Thomas Gleixner 2020-08-26 11:17 ` [patch V2 44/46] platform-msi: Add device MSI infrastructure Thomas Gleixner 2020-08-26 11:17 ` Thomas Gleixner 2020-08-26 11:17 ` [patch V2 45/46] irqdomain/msi: Provide msi_alloc/free_store() callbacks Thomas Gleixner 2020-08-26 11:17 ` Thomas Gleixner 2020-08-26 11:17 ` [patch V2 46/46] irqchip: Add IMS (Interrupt Message Storm) driver - NOT FOR MERGING Thomas Gleixner 2020-08-26 11:17 ` Thomas Gleixner 2020-08-31 14:45 ` Jason Gunthorpe 2020-08-31 14:45 ` Jason Gunthorpe 2020-08-28 11:41 ` [patch V2 00/46] x86, PCI, XEN, genirq ...: Prepare for device MSI Joerg Roedel 2020-08-28 11:41 ` Joerg Roedel 2020-08-31 0:51 ` Lu Baolu 2020-08-31 0:51 ` Lu Baolu 2020-08-31 0:51 ` Lu Baolu 2020-08-31 7:10 ` Thomas Gleixner 2020-08-31 7:10 ` Thomas Gleixner 2020-08-31 7:29 ` Lu Baolu 2020-08-31 7:29 ` Lu Baolu 2020-08-31 7:29 ` Lu Baolu 2020-09-01 9:06 ` Boqun Feng 2020-09-01 9:06 ` Boqun Feng 2020-09-01 9:06 ` Boqun Feng 2020-09-03 16:35 ` Raj, Ashok 2020-09-03 16:35 ` Raj, Ashok 2020-09-03 18:12 ` Thomas Gleixner 2020-09-03 18:12 ` Thomas Gleixner 2020-09-08 3:39 ` Russ Anderson 2020-09-08 3:39 ` Russ Anderson 2020-09-25 15:29 ` Qian Cai 2020-09-25 15:29 ` Qian Cai 2020-09-25 15:29 ` Qian Cai 2020-09-25 15:49 ` Peter Zijlstra 2020-09-25 15:49 ` Peter Zijlstra 2020-09-25 23:14 ` Thomas Gleixner 2020-09-25 23:14 ` Thomas Gleixner 2020-09-27 8:46 ` [PATCH] x86/apic/msi: Unbreak DMAR and HPET MSI Thomas Gleixner 2020-09-27 8:46 ` Thomas Gleixner 2020-09-27 19:57 ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner 2020-09-29 23:03 ` [patch V2 00/46] x86, PCI, XEN, genirq ...: Prepare for device MSI Dey, Megha 2020-09-29 23:03 ` Dey, Megha 2020-09-30 6:41 ` Thomas Gleixner 2020-09-30 6:41 ` Thomas Gleixner 2020-09-30 11:43 ` Jason Gunthorpe 2020-09-30 11:43 ` Jason Gunthorpe 2020-09-30 15:20 ` Thomas Gleixner 2020-09-30 15:20 ` Thomas Gleixner 2020-09-30 17:25 ` Dey, Megha 2020-09-30 17:25 ` Dey, Megha 2020-09-30 18:11 ` Thomas Gleixner 2020-09-30 18:11 ` Thomas Gleixner 2020-11-12 12:55 ` REGRESSION: " Jason Gunthorpe 2020-11-12 12:55 ` Jason Gunthorpe 2020-11-12 14:15 ` Thomas Gleixner 2020-11-12 14:15 ` Thomas Gleixner 2020-11-12 15:18 ` Thomas Gleixner 2020-11-12 15:18 ` Thomas Gleixner 2020-11-12 19:15 ` iommu/vt-d: Cure VF irqdomain hickup Thomas Gleixner 2020-11-12 19:15 ` Thomas Gleixner 2020-11-12 21:34 ` Thomas Gleixner 2020-11-12 21:34 ` Thomas Gleixner 2020-11-13 9:19 ` Marc Zyngier 2020-11-13 9:19 ` Marc Zyngier 2020-11-13 13:52 ` Thomas Gleixner 2020-11-13 13:52 ` Thomas Gleixner 2020-11-13 7:20 ` Lu Baolu 2020-11-13 7:20 ` Lu Baolu 2020-11-16 9:47 ` Geert Uytterhoeven 2020-11-16 9:47 ` Geert Uytterhoeven 2020-11-16 12:50 ` Thomas Gleixner 2020-11-16 12:50 ` Thomas Gleixner 2020-11-16 12:50 ` Lu Baolu 2020-11-16 12:50 ` Lu Baolu 2020-11-16 23:22 ` Jason Gunthorpe 2020-11-16 23:22 ` Jason Gunthorpe
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=20200826112332.054367732@linutronix.de \ --to=tglx@linutronix.de \ --cc=alex.williamson@redhat.com \ --cc=baolu.lu@intel.com \ --cc=baolu.lu@linux.intel.com \ --cc=bhelgaas@google.com \ --cc=boris.ostrovsky@oracle.com \ --cc=dan.j.williams@intel.com \ --cc=dave.jiang@intel.com \ --cc=gregkh@linuxfoundation.org \ --cc=haiyangz@microsoft.com \ --cc=iommu@lists.linux-foundation.org \ --cc=jacob.jun.pan@intel.com \ --cc=jgg@mellanox.com \ --cc=jgross@suse.com \ --cc=jonathan.derrick@intel.com \ --cc=joro@8bytes.org \ --cc=kevin.tian@intel.com \ --cc=konrad.wilk@oracle.com \ --cc=kys@microsoft.com \ --cc=linux-hyperv@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=lorenzo.pieralisi@arm.com \ --cc=maz@kernel.org \ --cc=megha.dey@intel.com \ --cc=rafael@kernel.org \ --cc=rja@hpe.com \ --cc=sivanich@hpe.com \ --cc=sstabellini@kernel.org \ --cc=steve.wahl@hpe.com \ --cc=sthemmin@microsoft.com \ --cc=wei.liu@kernel.org \ --cc=x86@kernel.org \ --cc=xen-devel@lists.xenproject.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: linkBe 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.