Linux IOMMU Development
 help / color / mirror / Atom feed
  • * [Patch Part2 v4 25/33] x86/irq: Move check of cfg->move_in_progress into send_cleanup_vector()
           [not found] <1421733113-15704-1-git-send-email-jiang.liu@linux.intel.com>
           [not found] ` <1421733113-15704-1-git-send-email-jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
    @ 2015-01-20  5:51 ` Jiang Liu
      1 sibling, 0 replies; 13+ messages in thread
    From: Jiang Liu @ 2015-01-20  5:51 UTC (permalink / raw)
      To: Bjorn Helgaas, Benjamin Herrenschmidt, Thomas Gleixner,
    	Ingo Molnar, H. Peter Anvin, Rafael J. Wysocki, Randy Dunlap,
    	Yinghai Lu, Borislav Petkov, Dimitri Sivanich, x86, Joerg Roedel,
    	Jiang Liu
      Cc: Konrad Rzeszutek Wilk, David Cohen, Sander Eikelenboom,
    	David Vrabel, Andrew Morton, Tony Luck, Greg Kroah-Hartman,
    	linux-kernel, linux-pci, linux-acpi, iommu
    
    Move check of cfg->move_in_progress into send_cleanup_vector() to
    prepare for simplifying struct irq_cfg.
    
    Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
    Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: iommu@lists.linux-foundation.org
    Cc: Bjorn Helgaas <bhelgaas@google.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Joerg Roedel <joro@8bytes.org>
    Link: http://lkml.kernel.org/r/1416901802-24211-34-git-send-email-jiang.liu@linux.intel.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Joerg Roedel <jroedel@suse.de>
    ---
     arch/x86/kernel/apic/vector.c       |   10 ++++++++--
     arch/x86/platform/uv/uv_irq.c       |    3 +--
     drivers/iommu/amd_iommu.c           |    3 +--
     drivers/iommu/intel_irq_remapping.c |    3 +--
     4 files changed, 11 insertions(+), 8 deletions(-)
    
    diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c
    index 436a3400d9ac..a5ce2eef0528 100644
    --- a/arch/x86/kernel/apic/vector.c
    +++ b/arch/x86/kernel/apic/vector.c
    @@ -495,7 +495,7 @@ static struct irq_chip lapic_controller = {
     };
     
     #ifdef CONFIG_SMP
    -void send_cleanup_vector(struct irq_cfg *cfg)
    +static void __send_cleanup_vector(struct irq_cfg *cfg)
     {
     	cpumask_var_t cleanup_mask;
     
    @@ -513,6 +513,12 @@ void send_cleanup_vector(struct irq_cfg *cfg)
     	cfg->move_in_progress = 0;
     }
     
    +void send_cleanup_vector(struct irq_cfg *cfg)
    +{
    +	if (cfg->move_in_progress)
    +		__send_cleanup_vector(cfg);
    +}
    +
     asmlinkage __visible void smp_irq_move_cleanup_interrupt(void)
     {
     	unsigned vector, me;
    @@ -583,7 +589,7 @@ static void __irq_complete_move(struct irq_cfg *cfg, unsigned vector)
     	me = smp_processor_id();
     
     	if (vector == cfg->vector && cpumask_test_cpu(me, cfg->domain))
    -		send_cleanup_vector(cfg);
    +		__send_cleanup_vector(cfg);
     }
     
     void irq_complete_move(struct irq_cfg *cfg)
    diff --git a/arch/x86/platform/uv/uv_irq.c b/arch/x86/platform/uv/uv_irq.c
    index 54af6e388a12..091b36ac44c4 100644
    --- a/arch/x86/platform/uv/uv_irq.c
    +++ b/arch/x86/platform/uv/uv_irq.c
    @@ -63,8 +63,7 @@ uv_set_irq_affinity(struct irq_data *data, const struct cpumask *mask,
     	ret = parent->chip->irq_set_affinity(parent, mask, force);
     	if (ret >= 0) {
     		uv_program_mmr(cfg, data->chip_data);
    -		if (cfg->move_in_progress)
    -			send_cleanup_vector(cfg);
    +		send_cleanup_vector(cfg);
     	}
     
     	return ret;
    diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
    index f24bb128b28c..ce44cd79a674 100644
    --- a/drivers/iommu/amd_iommu.c
    +++ b/drivers/iommu/amd_iommu.c
    @@ -4333,8 +4333,7 @@ static int amd_ir_set_affinity(struct irq_data *data,
     	 * at the new destination. So, time to cleanup the previous
     	 * vector allocation.
     	 */
    -	if (cfg->move_in_progress)
    -		send_cleanup_vector(cfg);
    +	send_cleanup_vector(cfg);
     
     	return IRQ_SET_MASK_OK_DONE;
     }
    diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
    index 8a71ef6af93c..55e72ce52fc4 100644
    --- a/drivers/iommu/intel_irq_remapping.c
    +++ b/drivers/iommu/intel_irq_remapping.c
    @@ -1003,8 +1003,7 @@ intel_ir_set_affinity(struct irq_data *data, const struct cpumask *mask,
     	 * at the new destination. So, time to cleanup the previous
     	 * vector allocation.
     	 */
    -	if (cfg->move_in_progress)
    -		send_cleanup_vector(cfg);
    +	send_cleanup_vector(cfg);
     
     	return IRQ_SET_MASK_OK_DONE;
     }
    -- 
    1.7.10.4
    
    ^ permalink raw reply related	[flat|nested] 13+ messages in thread

  • end of thread, other threads:[~2015-01-28  1:56 UTC | newest]
    
    Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
    -- links below jump to the message on this page --
         [not found] <1421733113-15704-1-git-send-email-jiang.liu@linux.intel.com>
         [not found] ` <1421733113-15704-1-git-send-email-jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
    2015-01-20  5:51   ` [Patch Part2 v4 03/33] x86/irq: Kill x86_io_apic_ops.print_entries and related interfaces Jiang Liu
    2015-01-20  5:51   ` [Patch Part2 v4 04/33] x86/irq: Kill x86_io_apic_ops.setup_entry " Jiang Liu
    2015-01-20  5:51   ` [Patch Part2 v4 05/33] x86/irq: Kill x86_io_apic_ops.set_affinity " Jiang Liu
    2015-01-20  5:51   ` [Patch Part2 v4 06/33] x86/irq: Kill x86_io_apic_ops.eoi_ioapic_pin " Jiang Liu
         [not found]     ` <1421733113-15704-7-git-send-email-jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
    2015-01-28  1:56       ` [Patch Part2 v4] " Jiang Liu
    2015-01-20  5:51   ` [Patch Part2 v4 09/33] irq_remapping: Clean up unsued code to support IOAPIC Jiang Liu
    2015-01-20  5:51   ` [Patch Part2 v4 10/33] irq_remapping/vt-d: Clean up unsued code Jiang Liu
    2015-01-20  5:51   ` [Patch Part2 v4 11/33] irq_remapping/amd: " Jiang Liu
    2015-01-20  5:51   ` [Patch Part2 v4 12/33] irq_remapping: Clean up unused interfaces Jiang Liu
    2015-01-20  5:51   ` [Patch Part2 v4 13/33] x86/irq: Kill irq_cfg.irq_remapped Jiang Liu
    2015-01-20  5:51   ` [Patch Part2 v4 14/33] irq_remapping/vt-d: Move struct irq_2_iommu into intel_irq_remapping.c Jiang Liu
    2015-01-20  5:51   ` [Patch Part2 v4 15/33] irq_remapping/amd: Move struct irq_2_irte into amd_iommu.c Jiang Liu
    2015-01-20  5:51 ` [Patch Part2 v4 25/33] x86/irq: Move check of cfg->move_in_progress into send_cleanup_vector() Jiang Liu
    

    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox