> On 1 Jun 2021, at 04:17, Patrick Wildt <patr...@blueri.se> wrote:
>
> Hi,
>
> this call to sync the DMA mem wants to sync N - 1 number of prpl
> entries, as the first segment is configured regularly, while the
> addresses for the following segments (if more than 2), are in a
> special DMA memory.
>
> The code currently removes a single byte, instead of an entry.
> This just means that it is syncing more than it should.
nice.
> ok?
ok.
>
> Patrick
>
> diff --git a/sys/dev/ic/nvme.c b/sys/dev/ic/nvme.c
> index 62b8e40c626..6db25260ef0 100644
> --- a/sys/dev/ic/nvme.c
> +++ b/sys/dev/ic/nvme.c
> @@ -629,7 +629,7 @@ nvme_scsi_io(struct scsi_xfer *xs, int dir)
> bus_dmamap_sync(sc->sc_dmat,
> NVME_DMA_MAP(sc->sc_ccb_prpls),
> ccb->ccb_prpl_off,
> - sizeof(*ccb->ccb_prpl) * dmap->dm_nsegs - 1,
> + sizeof(*ccb->ccb_prpl) * (dmap->dm_nsegs - 1),
> BUS_DMASYNC_PREWRITE);
> }
>
> @@ -691,7 +691,7 @@ nvme_scsi_io_done(struct nvme_softc *sc, struct nvme_ccb
> *ccb,
> bus_dmamap_sync(sc->sc_dmat,
> NVME_DMA_MAP(sc->sc_ccb_prpls),
> ccb->ccb_prpl_off,
> - sizeof(*ccb->ccb_prpl) * dmap->dm_nsegs - 1,
> + sizeof(*ccb->ccb_prpl) * (dmap->dm_nsegs - 1),
> BUS_DMASYNC_POSTWRITE);
> }
>
>