Subject: linux-next: manual merge of the tip tree with the mips tree

From: Stephen Rothwell <[email-masked]>
Date: Mon, 4 Sep 2017 14:19:00 +1000

Hi all,

Today's linux-next merge of the tip tree got a conflict in:

  drivers/irqchip/irq-mips-gic.c

between commit:

  ac04be51a650 ("irqchip: mips-gic: Remove gic_map_to_vpe()")
  b6e583e41993 ("irqchip: mips-gic: Make pcpu_masks a per-cpu variable")
  6ab4fb2810db ("irqchip: mips-gic: Use pcpu_masks to avoid reading GIC_SH_MASK*")
  0429ecf6a6b4 ("irqchip: mips-gic: Use cpumask_first_and() in gic_set_affinity()")
  69aa0cbafce1 ("irqchip: mips-gic: Let the core set struct irq_common_data affinity")

from the mips tree and commit:

  18416e45b761 ("irqchip/mips-gic: Report that effective affinity is a single target")

from the tip tree.

I fixed it up (I think - see below, and please check result) and can
carry the fix as necessary. This is now fixed as far as linux-next is
concerned, but any non trivial conflicts should be mentioned to your
upstream maintainer when your tree is submitted for merging.  You may
also want to consider cooperating with the maintainer of the conflicting
tree to minimise any particularly complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc drivers/irqchip/irq-mips-gic.c
index 7187af1bea03,6461380ff1a4..000000000000
--- a/drivers/irqchip/irq-mips-gic.c
+++ b/drivers/irqchip/irq-mips-gic.c
@@@ -261,16 -457,18 +261,17 @@@ static int gic_set_affinity(struct irq_
  	spin_lock_irqsave(&gic_lock, flags);
  
  	/* Re-route this IRQ */
 -	gic_map_to_vpe(irq, mips_cm_vp_id(cpu));
 +	write_gic_map_vp(irq, BIT(mips_cm_vp_id(cpu)));
  
  	/* Update the pcpu_masks */
 -	for (i = 0; i < min(gic_vpes, NR_CPUS); i++)
 -		clear_bit(irq, pcpu_masks[i].pcpu_mask);
 -	set_bit(irq, pcpu_masks[cpu].pcpu_mask);
 +	gic_clear_pcpu_masks(irq);
 +	if (read_gic_mask(irq))
 +		set_bit(irq, per_cpu_ptr(pcpu_masks, cpu));
  
 -	cpumask_copy(irq_data_get_affinity_mask(d), cpumask);
+ 	irq_data_update_effective_affinity(d, cpumask_of(cpu));
  	spin_unlock_irqrestore(&gic_lock, flags);
  
 -	return IRQ_SET_MASK_OK_NOCOPY;
 +	return IRQ_SET_MASK_OK;
  }
  #endif