Changeset 66 for trunk/src/os2ahci/ctxhook.c
- Timestamp:
- Dec 23, 2010, 11:06:03 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/os2ahci/ctxhook.c
r63 r66 117 117 need_reset = 0; 118 118 119 dprintf("port %d, TF_DATA: 0x%lx\n", p, readl(port_mmio + PORT_TFDATA)); 120 119 121 /* get "current command slot"; only valid if there are no NCQ cmds */ 120 122 ccs = (int) ((readl(port_mmio + PORT_CMD) >> 8) & 0x0f); 121 123 122 for (iorb = ai->ports[p].iorb_queue.root; iorb != NULL; iorb = next) {124 for (iorb = ai->ports[p].iorb_queue.root; iorb != NULL; iorb = next) { 123 125 ADD_WORKSPACE _far *aws = add_workspace(iorb); 124 126 next = iorb->pNxtIORB; … … 285 287 286 288 /* move IORB to the local 'done' queue */ 287 aws_free(add_workspace(iorb));288 289 iorb_queue_del(&abort_queue, iorb); 289 290 iorb_queue_add(&done_queue, iorb); … … 331 332 if (add_workspace(iorb)->queued_hw) { 332 333 /* this IORB had already been queued to HW when we reset the port */ 333 aws_free(add_workspace(iorb));334 334 if (add_workspace(iorb)->idempotent) { 335 335 /* We can retry this IORB; just reset its status and it will be 336 336 * picked up by subsequent trigger_engine() calls. 337 337 */ 338 memset(&iorb->ADDWorkSpace, sizeof(iorb->ADDWorkSpace), 0x00);338 requeue_iorb(iorn); 339 339 340 340 } else { … … 356 356 next = iorb->pNxtIORB; 357 357 iorb->Status = IORB_DONE | IORB_ERROR; 358 aws_free(add_workspace(iorb)); 358 359 if (iorb->RequestControl & IORB_ASYNC_POST) { 359 360 iorb->NotifyAddress(iorb);
Note:
See TracChangeset
for help on using the changeset viewer.