| .. | .. |
|---|
| 103 | 103 | mflags = nlm_cop2_enable_irqsave(); |
|---|
| 104 | 104 | } |
|---|
| 105 | 105 | } |
|---|
| 106 | | - }; |
|---|
| 106 | + } |
|---|
| 107 | 107 | /* Enable message ring intr, to any thread in core */ |
|---|
| 108 | 108 | nlm_fmn_setup_intr(irq, (1 << nlm_threads_per_core) - 1); |
|---|
| 109 | 109 | nlm_cop2_disable_irqrestore(mflags); |
|---|
| 110 | 110 | return IRQ_HANDLED; |
|---|
| 111 | 111 | } |
|---|
| 112 | | - |
|---|
| 113 | | -struct irqaction fmn_irqaction = { |
|---|
| 114 | | - .handler = fmn_message_handler, |
|---|
| 115 | | - .flags = IRQF_PERCPU, |
|---|
| 116 | | - .name = "fmn", |
|---|
| 117 | | -}; |
|---|
| 118 | 112 | |
|---|
| 119 | 113 | void xlr_percpu_fmn_init(void) |
|---|
| 120 | 114 | { |
|---|
| .. | .. |
|---|
| 195 | 189 | { |
|---|
| 196 | 190 | uint32_t flags; |
|---|
| 197 | 191 | |
|---|
| 198 | | - /* setup irq only once */ |
|---|
| 199 | | - setup_irq(IRQ_FMN, &fmn_irqaction); |
|---|
| 192 | + /* request irq only once */ |
|---|
| 193 | + if (request_irq(IRQ_FMN, fmn_message_handler, IRQF_PERCPU, "fmn", NULL)) |
|---|
| 194 | + pr_err("Failed to request irq %d (fmn)\n", IRQ_FMN); |
|---|
| 200 | 195 | |
|---|
| 201 | 196 | flags = nlm_cop2_enable_irqsave(); |
|---|
| 202 | 197 | nlm_fmn_setup_intr(IRQ_FMN, (1 << nlm_threads_per_core) - 1); |
|---|