summaryrefslogtreecommitdiff
path: root/drivers/cache/cache-uclass.c
diff options
context:
space:
mode:
authorAaron Williams <awilliams@marvell.com>2019-08-22 20:37:26 -0700
committerTom Rini <trini@konsulko.com>2019-08-26 11:46:28 -0400
commitb21dcebfa6b372cd91bf42a30f1d8a1a525f329b (patch)
treeb569c1f257b8ccda9ea47714414147ce7adbfc4d /drivers/cache/cache-uclass.c
parent4ebeb4c559f3604169a54f3a318bdabcc6047320 (diff)
nvme: Fix PRP Offset Invalid
When large writes take place I saw a Samsung EVO 970+ return a status value of 0x13, PRP Offset Invalid. I tracked this down to the improper handling of PRP entries. The blocks the PRP entries are placed in cannot cross a page boundary and thus should be allocated on page boundaries. This is how the Linux kernel driver works. With this patch, the PRP pool is allocated on a page boundary and other than the very first allocation, the pool size is a multiple of the page size. Each page can hold (4096 / 8) - 1 entries since the last entry must point to the next page in the pool. Signed-off-by: Aaron Williams <awilliams@marvell.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'drivers/cache/cache-uclass.c')
0 files changed, 0 insertions, 0 deletions