Commit 5a5ca73a authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

Pull ARM64 fixes from Catalin Marinas:

 - arm64 build fix following the move of the thread_struct to the end of
   task_struct and the asm offsets becoming too large for the AArch64
   ISA

 - preparatory patch for moving irq_data struct members (applied now to
   reduce dependency for the next merging window)

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
  ARM64/irq: Use access helper irq_data_get_affinity_mask()
  arm64: switch_to: calculate cpu context pointer using separate register
parents d725e66c 3bc38fc1
...@@ -585,7 +585,8 @@ ENDPROC(el0_irq) ...@@ -585,7 +585,8 @@ ENDPROC(el0_irq)
* *
*/ */
ENTRY(cpu_switch_to) ENTRY(cpu_switch_to)
add x8, x0, #THREAD_CPU_CONTEXT mov x10, #THREAD_CPU_CONTEXT
add x8, x0, x10
mov x9, sp mov x9, sp
stp x19, x20, [x8], #16 // store callee-saved registers stp x19, x20, [x8], #16 // store callee-saved registers
stp x21, x22, [x8], #16 stp x21, x22, [x8], #16
...@@ -594,7 +595,7 @@ ENTRY(cpu_switch_to) ...@@ -594,7 +595,7 @@ ENTRY(cpu_switch_to)
stp x27, x28, [x8], #16 stp x27, x28, [x8], #16
stp x29, x9, [x8], #16 stp x29, x9, [x8], #16
str lr, [x8] str lr, [x8]
add x8, x1, #THREAD_CPU_CONTEXT add x8, x1, x10
ldp x19, x20, [x8], #16 // restore callee-saved registers ldp x19, x20, [x8], #16 // restore callee-saved registers
ldp x21, x22, [x8], #16 ldp x21, x22, [x8], #16
ldp x23, x24, [x8], #16 ldp x23, x24, [x8], #16
......
...@@ -61,7 +61,7 @@ void __init init_IRQ(void) ...@@ -61,7 +61,7 @@ void __init init_IRQ(void)
static bool migrate_one_irq(struct irq_desc *desc) static bool migrate_one_irq(struct irq_desc *desc)
{ {
struct irq_data *d = irq_desc_get_irq_data(desc); struct irq_data *d = irq_desc_get_irq_data(desc);
const struct cpumask *affinity = d->affinity; const struct cpumask *affinity = irq_data_get_affinity_mask(d);
struct irq_chip *c; struct irq_chip *c;
bool ret = false; bool ret = false;
...@@ -81,7 +81,7 @@ static bool migrate_one_irq(struct irq_desc *desc) ...@@ -81,7 +81,7 @@ static bool migrate_one_irq(struct irq_desc *desc)
if (!c->irq_set_affinity) if (!c->irq_set_affinity)
pr_debug("IRQ%u: unable to set affinity\n", d->irq); pr_debug("IRQ%u: unable to set affinity\n", d->irq);
else if (c->irq_set_affinity(d, affinity, false) == IRQ_SET_MASK_OK && ret) else if (c->irq_set_affinity(d, affinity, false) == IRQ_SET_MASK_OK && ret)
cpumask_copy(d->affinity, affinity); cpumask_copy(irq_data_get_affinity_mask(d), affinity);
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment