On Tuesday, 2 March 2021 10:14:56 AM AEDT Ralph Campbell wrote: > > From: Alistair Popple <apop...@nvidia.com> > > Sent: Thursday, February 25, 2021 11:19 PM > > To: linux...@kvack.org; nouv...@lists.freedesktop.org; > > bske...@redhat.com; a...@linux-foundation.org > > Cc: linux-...@vger.kernel.org; linux-kernel@vger.kernel.org; dri- > > de...@lists.freedesktop.org; John Hubbard <jhubb...@nvidia.com>; Ralph > > Campbell <rcampb...@nvidia.com>; jgli...@redhat.com; Jason Gunthorpe > > <j...@nvidia.com>; h...@infradead.org; dan...@ffwll.ch; Alistair Popple > > <apop...@nvidia.com> > > Subject: [PATCH v3 6/8] mm: Selftests for exclusive device memory > > > > Adds some selftests for exclusive device memory. > > > > Signed-off-by: Alistair Popple <apop...@nvidia.com> > > One minor nit below, but you can add
Thanks Ralph. Will fix that. > Tested-by: Ralph Campbell <rcampb...@nvidia.com> > Reviewed-by: Ralph Campbell <rcampb...@nvidia.com> > > > +static int dmirror_exclusive(struct dmirror *dmirror, > > + struct hmm_dmirror_cmd *cmd) > > +{ > > + unsigned long start, end, addr; > > + unsigned long size = cmd->npages << PAGE_SHIFT; > > + struct mm_struct *mm = dmirror->notifier.mm; > > + struct page *pages[64]; > > + struct dmirror_bounce bounce; > > + unsigned long next; > > + int ret; > > + > > + start = cmd->addr; > > + end = start + size; > > + if (end < start) > > + return -EINVAL; > > + > > + /* Since the mm is for the mirrored process, get a reference first. */ > > + if (!mmget_not_zero(mm)) > > + return -EINVAL; > > + > > + mmap_read_lock(mm); > > + for (addr = start; addr < end; addr = next) { > > + int i, mapped; > > + > > + if (end < addr + (64 << PAGE_SHIFT)) > > + next = end; > > + else > > + next = addr + (64 << PAGE_SHIFT); > > I suggest using ARRAY_SIZE(pages) instead of '64' to make the meaning clear. > >