···1166/* */1167/* */1168/******************************************************************************/00000000000000000000000001169static irqreturn_t1170ip2_interrupt(int irq, void *dev_id)1171{···12091210 if ( pB && (pB->i2eUsingIrq == irq) ) {1211 handled = 1;1212-#ifdef USE_IQI1213-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-#else1225-// We are using immediate servicing here. This sucks and can1226-// cause all sorts of havoc with ppp and others. The failsafe1227-// check on iiSendPendingMail could also throw a hairball.1228- i2ServiceBoard( pB );1229-#endif /* USE_IQI */1230 }1231 }1232
···1166/* */1167/* */1168/******************************************************************************/1169+static void1170+ip2_irq_work(i2eBordStrPtr pB)1171+{1172+#ifdef USE_IQI1173+ 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+#else1184+1185+// We are using immediate servicing here. This sucks and can1186+// cause all sorts of havoc with ppp and others. The failsafe1187+// check on iiSendPendingMail could also throw a hairball.1188+1189+ i2ServiceBoard( pB );1190+1191+#endif /* USE_IQI */1192+}1193+1194static irqreturn_t1195ip2_interrupt(int irq, void *dev_id)1196{···11841185 if ( pB && (pB->i2eUsingIrq == irq) ) {1186 handled = 1;1187+ ip2_irq_work(pB);000000000000000001188 }1189 }1190