Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 21445
b: refs/heads/master
c: 4bf447d
h: refs/heads/master
i:
  21443: 55ad10d
v: v3
  • Loading branch information
David S. Miller committed Mar 20, 2006
1 parent 72ee015 commit bb61d52
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 9 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: a615fea48be4eada94986d63e3e8ee5563121649
refs/heads/master: 4bf447d6f7c2357dec8bdc24ce0fcffd71cc29c0
19 changes: 11 additions & 8 deletions trunk/arch/sparc64/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,10 +152,11 @@ void enable_irq(unsigned int irq)
preempt_disable();

if (tlb_type == hypervisor) {
unsigned int ino = __irq_ino(irq);
int cpu = hard_smp_processor_id();

sun4v_intr_settarget(irq, cpu);
sun4v_intr_setenabled(irq, HV_INTR_ENABLED);
sun4v_intr_settarget(ino, cpu);
sun4v_intr_setenabled(ino, HV_INTR_ENABLED);
} else {
if (tlb_type == cheetah || tlb_type == cheetah_plus) {
unsigned long ver;
Expand Down Expand Up @@ -214,7 +215,9 @@ void disable_irq(unsigned int irq)
imap = bucket->imap;
if (imap != 0UL) {
if (tlb_type == hypervisor) {
sun4v_intr_setenabled(irq, HV_INTR_DISABLED);
unsigned int ino = __irq_ino(irq);

sun4v_intr_setenabled(ino, HV_INTR_DISABLED);
} else {
u32 tmp;

Expand Down Expand Up @@ -643,9 +646,9 @@ static void process_bucket(int irq, struct ino_bucket *bp, struct pt_regs *regs)
}
if (bp->pil != 0) {
if (tlb_type == hypervisor) {
unsigned int irq = __irq(bp);
unsigned int ino = __irq_ino(bp);

sun4v_intr_setstate(irq, HV_INTR_STATE_IDLE);
sun4v_intr_setstate(ino, HV_INTR_STATE_IDLE);
} else {
upa_writel(ICLR_IDLE, bp->iclr);
/* Test and add entropy */
Expand Down Expand Up @@ -791,10 +794,10 @@ static int retarget_one_irq(struct irqaction *p, int goal_cpu)
}

if (tlb_type == hypervisor) {
unsigned int irq = __irq(bucket);
unsigned int ino = __irq_ino(bucket);

sun4v_intr_settarget(irq, goal_cpu);
sun4v_intr_setenabled(irq, HV_INTR_ENABLED);
sun4v_intr_settarget(ino, goal_cpu);
sun4v_intr_setenabled(ino, HV_INTR_ENABLED);
} else {
unsigned int tid;

Expand Down

0 comments on commit bb61d52

Please sign in to comment.