diff options
| author | Warner Losh <imp@FreeBSD.org> | 2022-04-28 17:13:58 +0000 |
|---|---|---|
| committer | Warner Losh <imp@FreeBSD.org> | 2022-04-28 17:19:39 +0000 |
| commit | c5041b4ee8c3385cec03e6ccf73af78cadfe8d90 (patch) | |
| tree | 486f457c356a78ab7a7a98b1a0aebf477cbc2784 /sys/dev/mps | |
| parent | 65c87a6c81f52a8328d81ba9ede5662d9df23a0c (diff) | |
Diffstat (limited to 'sys/dev/mps')
| -rw-r--r-- | sys/dev/mps/mps.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/dev/mps/mps.c b/sys/dev/mps/mps.c index 5021acf930a3..b3f470bf5a39 100644 --- a/sys/dev/mps/mps.c +++ b/sys/dev/mps/mps.c @@ -2983,6 +2983,12 @@ mps_data_cb(void *arg, bus_dma_segment_t *segs, int nsegs, int error) mps_dprint(sc, MPS_INFO, "Out of chain frames, " "consider increasing hw.mps.max_chains.\n"); cm->cm_flags |= MPS_CM_FLAGS_CHAIN_FAILED; + /* + * mpr_complete_command can only be called on commands + * that are in the queue. Since this is an error path + * which gets called before we enqueue, update the state + * to meet this requirement before we complete it. + */ cm->cm_state = MPS_CM_STATE_INQUEUE; mps_complete_command(sc, cm); return; |
