.. | .. |
---|
111 | 111 | extern irqreturn_t crime_memerr_intr(int irq, void *dev_id); |
---|
112 | 112 | extern irqreturn_t crime_cpuerr_intr(int irq, void *dev_id); |
---|
113 | 113 | |
---|
114 | | -static struct irqaction memerr_irq = { |
---|
115 | | - .handler = crime_memerr_intr, |
---|
116 | | - .name = "CRIME memory error", |
---|
117 | | -}; |
---|
118 | | - |
---|
119 | | -static struct irqaction cpuerr_irq = { |
---|
120 | | - .handler = crime_cpuerr_intr, |
---|
121 | | - .name = "CRIME CPU error", |
---|
122 | | -}; |
---|
123 | | - |
---|
124 | 114 | /* |
---|
125 | 115 | * This is for pure CRIME interrupts - ie not MACE. The advantage? |
---|
126 | 116 | * We get to split the register in half and do faster lookups. |
---|
.. | .. |
---|
497 | 487 | break; |
---|
498 | 488 | } |
---|
499 | 489 | } |
---|
500 | | - setup_irq(CRIME_MEMERR_IRQ, &memerr_irq); |
---|
501 | | - setup_irq(CRIME_CPUERR_IRQ, &cpuerr_irq); |
---|
| 490 | + if (request_irq(CRIME_MEMERR_IRQ, crime_memerr_intr, 0, |
---|
| 491 | + "CRIME memory error", NULL)) |
---|
| 492 | + pr_err("Failed to register CRIME memory error interrupt\n"); |
---|
| 493 | + if (request_irq(CRIME_CPUERR_IRQ, crime_cpuerr_intr, 0, |
---|
| 494 | + "CRIME CPU error", NULL)) |
---|
| 495 | + pr_err("Failed to register CRIME CPU error interrupt\n"); |
---|
502 | 496 | |
---|
503 | 497 | #define ALLINTS (IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4 | IE_IRQ5) |
---|
504 | 498 | change_c0_status(ST0_IM, ALLINTS); |
---|