mirror of
https://github.com/torvalds/linux.git
synced 2026-05-26 16:12:59 +02:00
vfio/type1: Catch zero from pin_user_pages_remote()
pin_user_pages_remote() can currently return zero for invalid args or zero nr_pages, neither of which should ever happen. However vaddr_get_pfns() indicates it should only ever return a positive value or -errno and there's a theoretical case where this can slip through and be unhandled by callers. Therefore convert zero to -EFAULT. Reviewed-by: Peter Xu <peterx@redhat.com> Reviewed-by: Mitchell Augustin <mitchell.augustin@canonical.com> Tested-by: Mitchell Augustin <mitchell.augustin@canonical.com> Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Link: https://lore.kernel.org/r/20250218222209.1382449-2-alex.williamson@redhat.com Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
This commit is contained in:
parent
41112160ca
commit
afe84f3b7a
|
|
@ -564,6 +564,8 @@ static int vaddr_get_pfns(struct mm_struct *mm, unsigned long vaddr,
|
|||
if (ret > 0) {
|
||||
*pfn = page_to_pfn(pages[0]);
|
||||
goto done;
|
||||
} else if (!ret) {
|
||||
ret = -EFAULT;
|
||||
}
|
||||
|
||||
vaddr = untagged_addr_remote(mm, vaddr);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user