diff options
-rw-r--r-- | sys/dev/mpt/mpt_freebsd.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/mpt/mpt_freebsd.c b/sys/dev/mpt/mpt_freebsd.c index f64a3ff..9124ccd 100644 --- a/sys/dev/mpt/mpt_freebsd.c +++ b/sys/dev/mpt/mpt_freebsd.c @@ -268,11 +268,13 @@ mpt_execute_req(void *arg, bus_dma_segment_t *dm_segs, int nseg, int error) ntodo = MPT_NSGL(mpt) - 1; ce->NextChainOffset = (MPT_RQSL(mpt) - sizeof (SGE_SIMPLE32)) >> 2; + ce->Length = MPT_NSGL(mpt) + * sizeof (SGE_SIMPLE32); } else { ntodo = nleft; ce->NextChainOffset = 0; + ce->Length = ntodo * sizeof (SGE_SIMPLE32); } - ce->Length = ntodo * sizeof (SGE_SIMPLE32); ce->Address = req->req_pbuf + ((char *)se - (char *)mpt_req); ce->Flags = MPI_SGE_FLAGS_CHAIN_ELEMENT; |