Lines Matching defs:sdev

147 	struct sbp_dev	*sdev;
339 sbp_show_sdev_info(struct sbp_dev *sdev)
343 fwdev = sdev->target->fwdev;
344 device_printf(sdev->target->sbp->fd.dev,
348 sdev->bustgtlun,
349 (sdev->type & 0x40) >> 6,
350 (sdev->type & 0x1f),
357 device_printf(sdev->target->sbp->fd.dev,
360 sdev->bustgtlun,
361 sdev->vendor,
362 sdev->product,
363 sdev->revision);
423 struct sbp_dev *sdev, **newluns;
454 sdev = target->luns[lun];
455 if (sdev == NULL)
457 sdev->flags &= ~VALID_LUN;
460 sbp_cam_detach_sdev(sdev);
461 sbp_free_sdev(sdev);
504 sdev = target->luns[lun];
505 if (sdev == NULL) {
506 sdev = malloc(sizeof(struct sbp_dev),
508 if (sdev == NULL) {
512 target->luns[lun] = sdev;
513 sdev->lun_id = lun;
514 sdev->target = target;
515 STAILQ_INIT(&sdev->ocbs);
516 callout_init_mtx(&sdev->login_callout, &sbp->mtx, 0);
517 sdev->status = SBP_DEV_RESET;
519 snprintf(sdev->bustgtlun, 32, "%s:%d:%d",
520 device_get_nameunit(sdev->target->sbp->fd.dev),
521 sdev->target->target_id,
522 sdev->lun_id);
524 sdev->flags |= VALID_LUN;
525 sdev->type = (reg->val & 0xff0000) >> 16;
532 SBP_DMA_SIZE, &sdev->dma, BUS_DMA_NOWAIT |
534 if (sdev->dma.v_addr == NULL) {
537 free(sdev, M_SBP);
541 sdev->login = (struct sbp_login_res *) sdev->dma.v_addr;
542 sdev->ocb = (struct sbp_ocb *)
543 ((char *)sdev->dma.v_addr + SBP_LOGIN_SIZE);
544 bzero((char *)sdev->ocb,
547 STAILQ_INIT(&sdev->free_ocbs);
550 ocb = &sdev->ocb[i];
551 ocb->bus_addr = sdev->dma.bus_addr
561 sbp_free_ocb(sdev, ocb);
568 sdev = target->luns[lun];
569 if (sdev != NULL && (sdev->flags & VALID_LUN) == 0) {
570 sbp_cam_detach_sdev(sdev);
571 sbp_free_sdev(sdev);
624 sbp_probe_lun(struct sbp_dev *sdev)
630 bzero(sdev->vendor, sizeof(sdev->vendor));
631 bzero(sdev->product, sizeof(sdev->product));
633 fwdev = sdev->target->fwdev;
638 crom_parse_text(cc, sdev->vendor, sizeof(sdev->vendor));
648 snprintf(sdev->revision, sizeof(sdev->revision),
653 crom_parse_text(cc, sdev->product, sizeof(sdev->product));
659 struct sbp_dev *sdev = (struct sbp_dev *)arg;
660 SBP_LOCK_ASSERT(sdev->target->sbp);
661 sbp_mgm_orb(sdev, ORB_FUN_LGI, NULL);
665 sbp_login(struct sbp_dev *sdev)
672 timevalsub(&delta, &sdev->target->sbp->last_busreset);
682 callout_reset(&sdev->login_callout, ticks,
683 sbp_login_callout, (void *)(sdev));
694 struct sbp_dev *sdev;
710 sdev = target->luns[i];
711 if (sdev == NULL)
713 if (alive && (sdev->status != SBP_DEV_DEAD)) {
714 if (sdev->path != NULL) {
715 xpt_freeze_devq(sdev->path, 1);
716 sdev->freeze++;
718 sbp_probe_lun(sdev);
719 sbp_show_sdev_info(sdev);
721 sbp_abort_all_ocbs(sdev, CAM_SCSI_BUS_RESET);
722 switch (sdev->status) {
726 sbp_login(sdev);
733 sbp_mgm_orb(sdev, ORB_FUN_RCN, NULL);
737 switch (sdev->status) {
744 if (sdev->path) {
745 xpt_freeze_devq(sdev->path, 1);
746 sdev->freeze++;
748 sdev->status = SBP_DEV_RETRY;
749 sbp_cam_detach_sdev(sdev);
750 sbp_free_sdev(sdev);
755 sdev->status = SBP_DEV_RESET;
862 struct sbp_dev *sdev;
863 sdev = (struct sbp_dev *)xfer->sc;
865 device_printf(sdev->target->sbp->fd.dev,"%s\n", __func__);
868 SBP_LOCK(sdev->target->sbp);
869 STAILQ_INSERT_TAIL(&sdev->target->sbp->fwb.xferlist, xfer, link);
870 SBP_UNLOCK(sdev->target->sbp);
878 struct sbp_dev *sdev;
880 sdev = (struct sbp_dev *)xfer->sc;
882 SBP_LOCK_ASSERT(sdev->target->sbp);
883 STAILQ_INSERT_TAIL(&sdev->target->xferlist, xfer, link);
889 struct sbp_dev *tsdev, *sdev = (struct sbp_dev *)xfer->sc;
890 struct sbp_target *target = sdev->target;
894 device_printf(sdev->target->sbp->fd.dev,
895 "%s: %s failed: resp=%d\n", __func__, sdev->bustgtlun, xfer->resp);
908 sbp_reset_start(struct sbp_dev *sdev)
914 device_printf(sdev->target->sbp->fd.dev,
915 "%s:%s\n", __func__,sdev->bustgtlun);
918 xfer = sbp_write_cmd(sdev, FWTCODE_WREQQ, 0);
930 struct sbp_dev *sdev;
933 sdev = (struct sbp_dev *)xfer->sc;
936 device_printf(sdev->target->sbp->fd.dev,
937 "%s:%s\n", __func__, sdev->bustgtlun);
940 SBP_LOCK(sdev->target->sbp);
942 SBP_UNLOCK(sdev->target->sbp);
963 struct sbp_dev *sdev;
965 sdev = (struct sbp_dev *) ccb->ccb_h.ccb_sdev_ptr;
966 target = sdev->target;
969 device_printf(sdev->target->sbp->fd.dev,
970 "%s:%s\n", __func__, sdev->bustgtlun);
973 sdev->status = SBP_DEV_ATTACHED;
975 device_printf(sdev->target->sbp->fd.dev,
976 "%s:%s failed\n", __func__, sdev->bustgtlun);
978 sdev = sbp_next_dev(target, sdev->lun_id + 1);
979 if (sdev == NULL) {
984 xpt_setup_ccb(&ccb->ccb_h, sdev->path, SCAN_PRI);
985 ccb->ccb_h.ccb_sdev_ptr = sdev;
987 xpt_release_devq(sdev->path, sdev->freeze, TRUE);
988 sdev->freeze = 1;
995 struct sbp_dev *sdev;
999 sdev = sbp_next_dev(target, 0);
1000 if (sdev == NULL) {
1006 device_printf(sdev->target->sbp->fd.dev,
1007 "%s:%s\n", __func__, sdev->bustgtlun);
1014 xpt_setup_ccb(&ccb->ccb_h, sdev->path, SCAN_PRI);
1019 ccb->ccb_h.ccb_sdev_ptr = sdev;
1023 xpt_release_devq(sdev->path, sdev->freeze, TRUE);
1024 sdev->freeze = 1;
1028 sbp_scan_dev(struct sbp_dev *sdev)
1030 sdev->status = SBP_DEV_PROBE;
1031 callout_reset_sbt(&sdev->target->scan_callout, SBT_1MS * scan_delay, 0,
1032 sbp_cam_scan_target, (void *)sdev->target, 0);
1038 struct sbp_dev *sdev;
1042 sdev = (struct sbp_dev *)xfer->sc;
1043 target = sdev->target;
1047 device_printf(sdev->target->sbp->fd.dev,
1048 "%s:%s\n", __func__, sdev->bustgtlun);
1052 if (sdev->path == NULL)
1053 xpt_create_path(&sdev->path, NULL,
1055 target->target_id, sdev->lun_id);
1063 sdev->status = SBP_DEV_ATTACHED;
1068 sbp_scan_dev(sdev);
1075 struct sbp_dev *sdev;
1077 sdev = (struct sbp_dev *)xfer->sc;
1079 device_printf(sdev->target->sbp->fd.dev,
1080 "%s:%s\n", __func__, sdev->bustgtlun);
1083 device_printf(sdev->target->sbp->fd.dev,
1084 "%s:%s resp=%d\n", __func__, sdev->bustgtlun, xfer->resp);
1087 SBP_LOCK(sdev->target->sbp);
1089 if (sdev->path) {
1090 xpt_release_devq(sdev->path, sdev->freeze, TRUE);
1091 sdev->freeze = 0;
1093 SBP_UNLOCK(sdev->target->sbp);
1097 sbp_agent_reset(struct sbp_dev *sdev)
1102 SBP_LOCK_ASSERT(sdev->target->sbp);
1104 device_printf(sdev->target->sbp->fd.dev,
1105 "%s:%s\n", __func__, sdev->bustgtlun);
1107 xfer = sbp_write_cmd(sdev, FWTCODE_WREQQ, 0x04);
1110 if (sdev->status == SBP_DEV_ATTACHED || sdev->status == SBP_DEV_PROBE)
1117 sbp_abort_all_ocbs(sdev, CAM_BDR_SENT);
1123 struct sbp_dev *sdev;
1125 sdev = (struct sbp_dev *)xfer->sc;
1127 device_printf(sdev->target->sbp->fd.dev,
1128 "%s:%s\n", __func__, sdev->bustgtlun);
1130 SBP_LOCK(sdev->target->sbp);
1132 sbp_agent_reset(sdev);
1133 SBP_UNLOCK(sdev->target->sbp);
1137 sbp_busy_timeout(struct sbp_dev *sdev)
1142 device_printf(sdev->target->sbp->fd.dev,
1143 "%s:%s\n", __func__, sdev->bustgtlun);
1145 xfer = sbp_write_cmd(sdev, FWTCODE_WREQQ, 0);
1158 struct sbp_dev *sdev;
1159 sdev = (struct sbp_dev *)xfer->sc;
1162 device_printf(sdev->target->sbp->fd.dev,
1163 "%s:%s\n", __func__, sdev->bustgtlun);
1169 SBP_LOCK(sdev->target->sbp);
1172 sdev->flags &= ~ORB_POINTER_ACTIVE;
1174 if ((sdev->flags & ORB_POINTER_NEED) != 0) {
1177 sdev->flags &= ~ORB_POINTER_NEED;
1178 ocb = STAILQ_FIRST(&sdev->ocbs);
1180 sbp_orb_pointer(sdev, ocb);
1182 SBP_UNLOCK(sdev->target->sbp);
1187 sbp_orb_pointer(struct sbp_dev *sdev, struct sbp_ocb *ocb)
1192 device_printf(sdev->target->sbp->fd.dev,
1194 __func__, sdev->bustgtlun,
1198 SBP_LOCK_ASSERT(sdev->target->sbp);
1200 if ((sdev->flags & ORB_POINTER_ACTIVE) != 0) {
1204 sdev->flags |= ORB_POINTER_NEED;
1208 sdev->flags |= ORB_POINTER_ACTIVE;
1209 xfer = sbp_write_cmd(sdev, FWTCODE_WREQB, 0x08);
1218 htonl(((sdev->target->sbp->fd.fc->nodeid | FWLOCALBUS) << 16));
1231 struct sbp_dev *sdev;
1232 sdev = (struct sbp_dev *)xfer->sc;
1235 device_printf(sdev->target->sbp->fd.dev,
1236 "%s:%s\n", __func__, sdev->bustgtlun);
1240 device_printf(sdev->target->sbp->fd.dev,
1243 SBP_LOCK(sdev->target->sbp);
1245 sdev->flags &= ~ORB_DOORBELL_ACTIVE;
1246 if ((sdev->flags & ORB_DOORBELL_NEED) != 0) {
1247 sdev->flags &= ~ORB_DOORBELL_NEED;
1248 sbp_doorbell(sdev);
1250 SBP_UNLOCK(sdev->target->sbp);
1254 sbp_doorbell(struct sbp_dev *sdev)
1259 device_printf(sdev->target->sbp->fd.dev,
1260 "%s:%s\n", __func__, sdev->bustgtlun);
1263 if ((sdev->flags & ORB_DOORBELL_ACTIVE) != 0) {
1264 sdev->flags |= ORB_DOORBELL_NEED;
1267 sdev->flags |= ORB_DOORBELL_ACTIVE;
1268 xfer = sbp_write_cmd(sdev, FWTCODE_WREQQ, 0x10);
1278 sbp_write_cmd(struct sbp_dev *sdev, int tcode, int offset)
1285 SBP_LOCK_ASSERT(sdev->target->sbp);
1287 target = sdev->target;
1309 xfer->send.spd = min(sdev->target->fwdev->speed, max_speed);
1310 xfer->fc = sdev->target->sbp->fd.fc;
1318 xfer->sc = (caddr_t)sdev;
1320 fp->mode.wreqq.dest_hi = sdev->login->cmd_hi;
1321 fp->mode.wreqq.dest_lo = sdev->login->cmd_lo + offset;
1325 fp->mode.wreqq.dst = FWLOCALBUS | sdev->target->fwdev->dst;
1331 sbp_mgm_orb(struct sbp_dev *sdev, int func, struct sbp_ocb *aocb)
1339 target = sdev->target;
1351 if ((ocb = sbp_get_ocb(sdev)) == NULL) {
1356 ocb->sdev = sdev;
1360 ocb->orb[7] = htonl(SBP_DEV2ADDR(target->target_id, sdev->lun_id));
1363 device_printf(sdev->target->sbp->fd.dev,
1365 __func__,sdev->bustgtlun,
1372 ocb->orb[3] = htonl(sdev->dma.bus_addr);
1373 ocb->orb[4] = htonl(ORB_NOTIFY | sdev->lun_id);
1377 fwdma_sync(&sdev->dma, BUS_DMASYNC_PREREAD);
1388 ocb->orb[4] = htonl(ORB_NOTIFY | func | sdev->login->id);
1394 STAILQ_INSERT_TAIL(&sdev->target->mgm_ocb_queue, ocb, ocb);
1402 xfer = sbp_write_cmd(sdev, FWTCODE_WREQB, 0);
1409 fp->mode.wreqb.dest_hi = sdev->target->mgm_hi;
1410 fp->mode.wreqb.dest_lo = sdev->target->mgm_lo;
1429 device_get_nameunit(ocb->sdev->target->sbp->fd.dev),
1460 ocb->sdev->bustgtlun,
1527 device_printf(ocb->sdev->target->sbp->fd.dev,
1529 __func__, ocb->sdev->bustgtlun,
1538 struct sbp_dev *sdev;
1542 sdev = ocb->sdev;
1547 device_printf(sdev->target->sbp->fd.dev,
1548 "%s:%s\n", __func__, sdev->bustgtlun);
1568 bcopy(sdev->vendor, inq->vendor, sizeof(inq->vendor));
1569 bcopy(sdev->product, inq->product, sizeof(inq->product));
1570 bcopy(sdev->revision + 2, inq->revision, sizeof(inq->revision));
1593 struct sbp_dev *sdev;
1641 sdev = target->luns[l];
1656 ocb = sbp_dequeue_ocb(sdev, sbp_status);
1658 device_printf(sdev->target->sbp->fd.dev,
1660 __func__,sdev->bustgtlun,
1666 device_printf(sdev->target->sbp->fd.dev,
1668 __func__, sdev->bustgtlun);
1671 device_printf(sdev->target->sbp->fd.dev,
1673 __func__, sdev->bustgtlun);
1684 device_printf(sdev->target->sbp->fd.dev,
1687 __func__, sdev->bustgtlun,
1692 device_printf(sdev->target->sbp->fd.dev,
1693 "%s\n", sdev->bustgtlun);
1720 if (sdev->path) {
1721 xpt_freeze_devq(sdev->path, 1);
1722 sdev->freeze++;
1742 fwdma_sync(&sdev->dma, BUS_DMASYNC_POSTREAD);
1743 login_res = sdev->login;
1750 device_printf(sdev->target->sbp->fd.dev,
1752 __func__, sdev->bustgtlun,
1757 sbp_busy_timeout(sdev);
1760 device_printf(sdev->target->sbp->fd.dev,
1762 __func__, sdev->bustgtlun);
1763 sdev->status = SBP_DEV_RESET;
1767 login_res = sdev->login;
1770 device_printf(sdev->target->sbp->fd.dev,
1772 __func__, sdev->bustgtlun,
1776 if (sdev->status == SBP_DEV_ATTACHED)
1777 sbp_scan_dev(sdev);
1779 sbp_agent_reset(sdev);
1783 device_printf(sdev->target->sbp->fd.dev,
1785 __func__, sdev->bustgtlun);
1787 sbp_login(sdev);
1791 sdev->status = SBP_DEV_RESET;
1794 sbp_busy_timeout(sdev);
1799 sbp_agent_reset(sdev);
1802 device_printf(sdev->target->sbp->fd.dev,
1804 __func__, sdev->bustgtlun, orb_fun);
1807 sbp_mgm_orb(sdev, ORB_FUN_RUNQUEUE, NULL);
1810 sdev->timeout = 0;
1836 sbp_free_ocb(sdev, ocb);
1839 sbp_agent_reset(sdev);
1855 xfer->spd = min(sdev->target->fwdev->speed, max_speed);
1998 struct sbp_dev *sdev;
2010 sdev = target->luns[j];
2011 if (sdev == NULL)
2013 callout_stop(&sdev->login_callout);
2014 if (sdev->status >= SBP_DEV_TOATTACH &&
2015 sdev->status <= SBP_DEV_ATTACHED)
2016 sbp_mgm_orb(sdev, ORB_FUN_LGO, NULL);
2035 sbp_free_sdev(struct sbp_dev *sdev)
2040 if (sdev == NULL)
2042 sbp = sdev->target->sbp;
2044 callout_drain(&sdev->login_callout);
2046 callout_drain(&sdev->ocb[i].timer);
2047 bus_dmamap_destroy(sbp->dmat, sdev->ocb[i].dmamap);
2049 fwdma_free(sbp->fd.fc, &sdev->dma);
2050 free(sdev, M_SBP);
2123 sbp_cam_detach_sdev(struct sbp_dev *sdev)
2125 if (sdev == NULL)
2127 if (sdev->status == SBP_DEV_DEAD)
2129 if (sdev->status == SBP_DEV_RESET)
2131 SBP_LOCK_ASSERT(sdev->target->sbp);
2132 sbp_abort_all_ocbs(sdev, CAM_DEV_NOT_THERE);
2133 if (sdev->path) {
2134 xpt_release_devq(sdev->path,
2135 sdev->freeze, TRUE);
2136 sdev->freeze = 0;
2137 xpt_async(AC_LOST_DEVICE, sdev->path, NULL);
2138 xpt_free_path(sdev->path);
2139 sdev->path = NULL;
2160 sbp_target_reset(struct sbp_dev *sdev, int method)
2163 struct sbp_target *target = sdev->target;
2184 sbp_mgm_orb(sdev, ORB_FUN_RST, NULL);
2188 sbp_reset_start(sdev);
2198 struct sbp_dev *sdev = ocb->sdev;
2199 struct sbp_target *target = sdev->target;
2202 device_printf(sdev->target->sbp->fd.dev,
2204 __func__, sdev->bustgtlun, (uint32_t)ocb->bus_addr);
2206 sbp_free_ocb(sdev, ocb);
2210 sbp_mgm_orb(sdev, ORB_FUN_RUNQUEUE, NULL);
2212 device_printf(sdev->target->sbp->fd.dev,
2214 __func__, sdev->bustgtlun);
2215 sbp_reset_start(sdev);
2222 struct sbp_dev *sdev = ocb->sdev;
2224 device_printf(sdev->target->sbp->fd.dev,
2226 __func__, sdev->bustgtlun, (uint32_t)ocb->bus_addr);
2228 SBP_LOCK_ASSERT(sdev->target->sbp);
2229 sdev->timeout++;
2230 switch (sdev->timeout) {
2233 xpt_freeze_devq(sdev->path, 1);
2234 sdev->freeze++;
2235 sbp_abort_all_ocbs(sdev, CAM_CMD_TIMEOUT);
2236 sbp_agent_reset(sdev);
2240 sbp_target_reset(sdev, sdev->timeout - 1);
2261 struct sbp_dev *sdev = NULL;
2265 /* target:lun -> sdev mapping */
2273 sdev = target->luns[ccb->ccb_h.target_lun];
2274 if (sdev != NULL && sdev->status != SBP_DEV_ATTACHED &&
2275 sdev->status != SBP_DEV_PROBE)
2276 sdev = NULL;
2281 if (sdev == NULL)
2292 if (sdev == NULL) {
2365 if (sdev == NULL) {
2372 if (sdev->status == SBP_DEV_PROBE) {
2383 if ((ocb = sbp_get_ocb(sdev)) == NULL) {
2385 if (sdev->freeze == 0) {
2386 xpt_freeze_devq(sdev->path, 1);
2387 sdev->freeze++;
2394 ocb->sdev = sdev;
2396 ccb->ccb_h.ccb_sdev_ptr = sdev;
2587 bus_dmamap_sync(ocb->sdev->target->sbp->dmat, ocb->dmamap,
2590 prev = sbp_enqueue_ocb(ocb->sdev, ocb);
2591 fwdma_sync(&ocb->sdev->dma, BUS_DMASYNC_PREWRITE);
2594 if (ocb->sdev->last_ocb != NULL)
2595 sbp_doorbell(ocb->sdev);
2597 sbp_orb_pointer(ocb->sdev, ocb);
2600 if (prev == NULL || (ocb->sdev->flags & ORB_LINK_DEAD) != 0) {
2601 ocb->sdev->flags &= ~ORB_LINK_DEAD;
2602 sbp_orb_pointer(ocb->sdev, ocb);
2622 sbp_dequeue_ocb(struct sbp_dev *sdev, struct sbp_status *sbp_status)
2629 device_printf(sdev->target->sbp->fd.dev,
2631 __func__, sdev->bustgtlun, ntohl(sbp_status->orb_lo), sbp_status->src);
2633 SBP_LOCK_ASSERT(sdev->target->sbp);
2634 STAILQ_FOREACH_SAFE(ocb, &sdev->ocbs, ocb, next) {
2637 STAILQ_REMOVE(&sdev->ocbs, ocb, sbp_ocb, ocb);
2641 bus_dmamap_sync(sdev->target->sbp->dmat,
2646 bus_dmamap_unload(sdev->target->sbp->dmat,
2652 sbp_orb_pointer(sdev, next);
2659 sdev->flags |= ORB_LINK_DEAD;
2667 if (sdev->last_ocb != NULL) {
2668 sbp_free_ocb(sdev, sdev->last_ocb);
2670 sdev->last_ocb = ocb;
2673 sbp_doorbell(sdev);
2681 device_printf(sdev->target->sbp->fd.dev,
2683 __func__, sdev->bustgtlun, order);
2690 sbp_enqueue_ocb(struct sbp_dev *sdev, struct sbp_ocb *ocb)
2694 SBP_LOCK_ASSERT(sdev->target->sbp);
2696 device_printf(sdev->target->sbp->fd.dev,
2697 "%s:%s 0x%08jx\n", __func__, sdev->bustgtlun, (uintmax_t)ocb->bus_addr);
2699 prev2 = prev = STAILQ_LAST(&sdev->ocbs, sbp_ocb, ocb);
2700 STAILQ_INSERT_TAIL(&sdev->ocbs, ocb, ocb);
2709 prev2 = sdev->last_ocb;
2711 if (prev2 != NULL && (ocb->sdev->flags & ORB_LINK_DEAD) == 0) {
2729 sbp_get_ocb(struct sbp_dev *sdev)
2733 SBP_LOCK_ASSERT(sdev->target->sbp);
2734 ocb = STAILQ_FIRST(&sdev->free_ocbs);
2736 sdev->flags |= ORB_SHORTAGE;
2740 STAILQ_REMOVE_HEAD(&sdev->free_ocbs, ocb);
2746 sbp_free_ocb(struct sbp_dev *sdev, struct sbp_ocb *ocb)
2751 SBP_LOCK_ASSERT(sdev->target->sbp);
2752 STAILQ_INSERT_TAIL(&sdev->free_ocbs, ocb, ocb);
2753 if ((sdev->flags & ORB_SHORTAGE) != 0) {
2756 sdev->flags &= ~ORB_SHORTAGE;
2757 count = sdev->freeze;
2758 sdev->freeze = 0;
2759 xpt_release_devq(sdev->path, count, TRUE);
2766 struct sbp_dev *sdev;
2768 sdev = ocb->sdev;
2769 SBP_LOCK_ASSERT(sdev->target->sbp);
2771 device_printf(sdev->target->sbp->fd.dev,
2772 "%s:%s 0x%jx\n", __func__, sdev->bustgtlun, (uintmax_t)ocb->bus_addr);
2779 bus_dmamap_sync(sdev->target->sbp->dmat, ocb->dmamap,
2782 bus_dmamap_unload(sdev->target->sbp->dmat, ocb->dmamap);
2789 sbp_free_ocb(sdev, ocb);
2793 sbp_abort_all_ocbs(struct sbp_dev *sdev, int status)
2799 SBP_LOCK_ASSERT(sdev->target->sbp);
2800 STAILQ_CONCAT(&temp, &sdev->ocbs);
2801 STAILQ_INIT(&sdev->ocbs);
2806 if (sdev->last_ocb != NULL) {
2807 sbp_free_ocb(sdev, sdev->last_ocb);
2808 sdev->last_ocb = NULL;