Hi Suniel, On Mon, Feb 8, 2021 at 7:02 PM Andre Przywara <andre.przyw...@arm.com> wrote: > > At the moment nvme_read_completion_status() tries to invidate a single > member of the cqes[] array, which is shady as just a single entry is > not cache line aligned. > The structure is dictated by hardware, and with 16 bytes is smaller than > any cache line we usually deal with. Also multiple entries need to be > consecutive in memory, so we can't pad them to cover a whole cache line. > > As a consequence we can only always invalidate all of them - U-Boot just > uses two of them anyway. This is fine, as they are only ever read by the > CPU (apart from the initial zeroing), so they can't become dirty. > > Make this obvious by always invalidating the whole array, regardless of > the entry number we are about to read. > Also blow up the allocation size to cover whole cache lines, to avoid > other heap allocations to sneak in. > > Signed-off-by: Andre Przywara <andre.przyw...@arm.com> > --- > Hi, > > this is just compile tested, and should fix the only questionable > cache invalidate call in this driver. > Please verify if this fixes any issues!
Can you test this on RK3399? Jagan.