Ignore:
Timestamp:
Jun 21, 2011, 2:39:30 PM (14 years ago)
Author:
Markus Thielen
Message:

contains CMs changes for unaligned buffers; removed unused stack var; let driver continue boot on unknown command line switch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/os2ahci/ahci.c

    r103 r110  
    13001300
    13011301  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    }
    13061316
    13071317    /* complete the interrupt */
     
    13281338  u32 done_mask;
    13291339
    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);
    13311342  memset(&done_queue, 0x00, sizeof(done_queue));
    13321343
Note: See TracChangeset for help on using the changeset viewer.