> 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);
>       }
> 
> 

Reply via email to