Messages in this thread | | | Date | Tue, 29 Nov 2022 12:50:57 +0800 | Subject | Re: [PATCH] nvme: clear the prp2 field of the nvme command. | From | "Rao, Lei" <> |
| |
On 11/29/2022 12:16 PM, Chaitanya Kulkarni wrote: > On 11/28/22 17:47, Lei Rao wrote: >> If the prp2 field is not filled in nvme_setup_prp_simple(), the prp2 >> field is garbage data. According to nvme spec, the prp2 is reserved if >> the data transfer does not cross a memory page boundary. Writing a >> reserved coded value into a controller property field produces undefined >> results, so it needs to be cleared in nvme_setup_rw(). >> >> Signed-off-by: Lei Rao <lei.rao@intel.com> > > if it is reserved then controller shoule ignore this field, no ?
It's feasible for the controller to ignore this field. But our controller has stricter checks, and if prp2 is not used but has a value, some warnings will be printed. According to the NVMe spec, it seems to write a reserved field produces an undefined result, so maybe clearing it is better.
Thanks, Lei
> > not sure if original author wanted to avoid an extra assignment > in the fast path with assumption that reserved fields should be > ignored if it is then we should avoid this, if not then looks good > > Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com> > > -ck >
| |