drivers/char/ip2: split out irq core logic into separate function

No changes besides code movement and glue.

Signed-off-by: Jeff Garzik <jgarzik@redhat.com>

+26 -18
+26 -18
drivers/char/ip2/ip2main.c
··· 1166 /* */ 1167 /* */ 1168 /******************************************************************************/ 1169 static irqreturn_t 1170 ip2_interrupt(int irq, void *dev_id) 1171 { ··· 1209 1210 if ( pB && (pB->i2eUsingIrq == irq) ) { 1211 handled = 1; 1212 - #ifdef USE_IQI 1213 - 1214 - if (NO_MAIL_HERE != ( pB->i2eStartMail = iiGetMail(pB))) { 1215 - // Disable his interrupt (will be enabled when serviced) 1216 - // This is mostly to protect from reentrancy. 1217 - iiDisableMailIrq(pB); 1218 - 1219 - // Park the board on the immediate queue for processing. 1220 - schedule_work(&pB->tqueue_interrupt); 1221 - 1222 - // Make sure the immediate queue is flagged to fire. 1223 - } 1224 - #else 1225 - // We are using immediate servicing here. This sucks and can 1226 - // cause all sorts of havoc with ppp and others. The failsafe 1227 - // check on iiSendPendingMail could also throw a hairball. 1228 - i2ServiceBoard( pB ); 1229 - #endif /* USE_IQI */ 1230 } 1231 } 1232
··· 1166 /* */ 1167 /* */ 1168 /******************************************************************************/ 1169 + static void 1170 + ip2_irq_work(i2eBordStrPtr pB) 1171 + { 1172 + #ifdef USE_IQI 1173 + if (NO_MAIL_HERE != ( pB->i2eStartMail = iiGetMail(pB))) { 1174 + // Disable his interrupt (will be enabled when serviced) 1175 + // This is mostly to protect from reentrancy. 1176 + iiDisableMailIrq(pB); 1177 + 1178 + // Park the board on the immediate queue for processing. 1179 + schedule_work(&pB->tqueue_interrupt); 1180 + 1181 + // Make sure the immediate queue is flagged to fire. 1182 + } 1183 + #else 1184 + 1185 + // We are using immediate servicing here. This sucks and can 1186 + // cause all sorts of havoc with ppp and others. The failsafe 1187 + // check on iiSendPendingMail could also throw a hairball. 1188 + 1189 + i2ServiceBoard( pB ); 1190 + 1191 + #endif /* USE_IQI */ 1192 + } 1193 + 1194 static irqreturn_t 1195 ip2_interrupt(int irq, void *dev_id) 1196 { ··· 1184 1185 if ( pB && (pB->i2eUsingIrq == irq) ) { 1186 handled = 1; 1187 + ip2_irq_work(pB); 1188 } 1189 } 1190