Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/nvme/nvme_ctrlr.c
Show First 20 Lines • Show All 972 Lines • ▼ Show 20 Lines | nvme_ctrlr_configure_intx(struct nvme_controller *ctrlr) | ||||
return (0); | return (0); | ||||
} | } | ||||
static void | static void | ||||
nvme_pt_done(void *arg, const struct nvme_completion *cpl) | nvme_pt_done(void *arg, const struct nvme_completion *cpl) | ||||
{ | { | ||||
struct nvme_pt_command *pt = arg; | struct nvme_pt_command *pt = arg; | ||||
uint16_t status; | struct nvme_status status; | ||||
bzero(&pt->cpl, sizeof(pt->cpl)); | bzero(&pt->cpl, sizeof(pt->cpl)); | ||||
pt->cpl.cdw0 = cpl->cdw0; | pt->cpl.cdw0 = cpl->cdw0; | ||||
status = cpl->status; | status = cpl->status; | ||||
status &= ~NVME_STATUS_P_MASK; | status.p = 0; | ||||
mst_semihalf.com: Won't work on big-endian. | |||||
pt->cpl.status = status; | pt->cpl.status = status; | ||||
mtx_lock(pt->driver_lock); | mtx_lock(pt->driver_lock); | ||||
wakeup(pt); | wakeup(pt); | ||||
mtx_unlock(pt->driver_lock); | mtx_unlock(pt->driver_lock); | ||||
} | } | ||||
int | int | ||||
▲ Show 20 Lines • Show All 391 Lines • Show Last 20 Lines |
Won't work on big-endian.