.. | .. |
---|
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); |
---|