Changeset 110 for trunk/src/os2ahci/ahci.c
- Timestamp:
- Jun 21, 2011, 2:39:30 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/os2ahci/ahci.c
r103 r110 1300 1300 1301 1301 if (handled) { 1302 /* trigger state machine to process next IORBs, if any */ 1303 spin_lock(drv_lock); 1304 trigger_engine(); 1305 spin_unlock(drv_lock); 1302 /* Trigger state machine to process next IORBs, if any. Due to excessive 1303 * IORB requeue operations (e.g. when processing large unaligned reads or 1304 * writes), we may be stacking interrupts on top of each other. If we 1305 * detect this, we'll pass this on to the engine context hook. 1306 */ 1307 if ((u16) (u32) (void _far *) &irq_stat < 0xf000) { 1308 ddprintf("IRQ stack running low; arming engine context hook\n"); 1309 DevHelp_ArmCtxHook(0, engine_ctxhook_h); 1310 1311 } else { 1312 spin_lock(drv_lock); 1313 trigger_engine(); 1314 spin_unlock(drv_lock); 1315 } 1306 1316 1307 1317 /* complete the interrupt */ … … 1328 1338 u32 done_mask; 1329 1339 1330 ddprintf("port interrupt for adapter #%d, port #%d\n", ad_no(ai), p); 1340 ddprintf("port interrupt for adapter #%d, port #%d, stack frame %Fp\n", ad_no(ai), 1341 p, (void _far *) &done_queue); 1331 1342 memset(&done_queue, 0x00, sizeof(done_queue)); 1332 1343
Note:
See TracChangeset
for help on using the changeset viewer.