Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 243351
b: refs/heads/master
c: 16741ea
h: refs/heads/master
i:
  243349: 5eb8560
  243347: fbd09ec
  243343: cdc625b
v: v3
  • Loading branch information
Thomas Gleixner committed Mar 29, 2011
1 parent be3fb19 commit f5d210b
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 18 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: fcd8d4f498698265fc0fba1dd376303caea71de4
refs/heads/master: 16741ea0411ff8adb9b84934433638fa432c5292
22 changes: 9 additions & 13 deletions trunk/arch/sparc/kernel/irq_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -627,7 +627,6 @@ unsigned int sun4v_build_virq(u32 devhandle, unsigned int devino)
struct irq_handler_data *handler_data;
unsigned long hv_err, cookie;
struct ino_bucket *bucket;
struct irq_desc *desc;
unsigned int irq;

bucket = kzalloc(sizeof(struct ino_bucket), GFP_ATOMIC);
Expand Down Expand Up @@ -660,9 +659,7 @@ unsigned int sun4v_build_virq(u32 devhandle, unsigned int devino)
* especially wrt. locking, we do not let request_irq() enable
* the interrupt.
*/
desc = irq_desc + irq;
desc->status |= IRQ_NOAUTOEN;

irq_set_status_flags(irq, IRQ_NOAUTOEN);
set_irq_data(irq, handler_data);

/* Catch accidental accesses to these things. IMAP/ICLR handling
Expand Down Expand Up @@ -772,19 +769,18 @@ void fixup_irqs(void)
unsigned int irq;

for (irq = 0; irq < NR_IRQS; irq++) {
struct irq_desc *desc = irq_to_desc(irq);
struct irq_data *data = irq_desc_get_irq_data(desc);
unsigned long flags;

raw_spin_lock_irqsave(&irq_desc[irq].lock, flags);
if (irq_desc[irq].action &&
!(irq_desc[irq].status & IRQ_PER_CPU)) {
struct irq_data *data = irq_get_irq_data(irq);

raw_spin_lock_irqsave(&desc->lock, flags);
if (desc->action && !irqd_is_per_cpu(data)) {
if (data->chip->irq_set_affinity)
data->chip->irq_set_affinity(data,
data->affinity,
false);
data->affinity,
false);
}
raw_spin_unlock_irqrestore(&irq_desc[irq].lock, flags);
raw_spin_unlock_irqrestore(&desc->lock, flags);
}

tick_ops->disable_irq();
Expand Down Expand Up @@ -1022,5 +1018,5 @@ void __init init_IRQ(void)
: "i" (PSTATE_IE)
: "g1");

irq_desc[0].action = &timer_irq_action;
irq_to_desc(0)->action = &timer_irq_action;
}
5 changes: 1 addition & 4 deletions trunk/arch/sparc/kernel/pci_msi.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,10 @@ static irqreturn_t sparc64_msiq_interrupt(int irq, void *cookie)

err = ops->dequeue_msi(pbm, msiqid, &head, &msi);
if (likely(err > 0)) {
struct irq_desc *desc;
unsigned int irq;

irq = pbm->msi_irq_table[msi - pbm->msi_first];
desc = irq_desc + irq;

desc->handle_irq(irq, desc);
generic_handle_irq(irq);
}

if (unlikely(err < 0))
Expand Down

0 comments on commit f5d210b

Please sign in to comment.