IB/hfi1: Assign npages earlier

[ Upstream commit f9c47b2caa7ffc903ec950b454b59c209afe3182 ]

Improve code clarity and enable earlier use of
tidbuf->npages by moving its assignment to
structure creation time.

Signed-off-by: Dean Luick <dean.luick@cornelisnetworks.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
Link: https://lore.kernel.org/r/167329104884.1472990.4639750192433251493.stgit@awfm-02.cornelisnetworks.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Dean Luick 2023-01-09 14:04:08 -05:00 committed by Greg Kroah-Hartman
parent 98e626c115
commit bc4601ad97

View File

@ -215,16 +215,11 @@ static void unpin_rcv_pages(struct hfi1_filedata *fd,
static int pin_rcv_pages(struct hfi1_filedata *fd, struct tid_user_buf *tidbuf) static int pin_rcv_pages(struct hfi1_filedata *fd, struct tid_user_buf *tidbuf)
{ {
int pinned; int pinned;
unsigned int npages; unsigned int npages = tidbuf->npages;
unsigned long vaddr = tidbuf->vaddr; unsigned long vaddr = tidbuf->vaddr;
struct page **pages = NULL; struct page **pages = NULL;
struct hfi1_devdata *dd = fd->uctxt->dd; struct hfi1_devdata *dd = fd->uctxt->dd;
/* Get the number of pages the user buffer spans */
npages = num_user_pages(vaddr, tidbuf->length);
if (!npages)
return -EINVAL;
if (npages > fd->uctxt->expected_count) { if (npages > fd->uctxt->expected_count) {
dd_dev_err(dd, "Expected buffer too big\n"); dd_dev_err(dd, "Expected buffer too big\n");
return -EINVAL; return -EINVAL;
@ -258,7 +253,6 @@ static int pin_rcv_pages(struct hfi1_filedata *fd, struct tid_user_buf *tidbuf)
return pinned; return pinned;
} }
tidbuf->pages = pages; tidbuf->pages = pages;
tidbuf->npages = npages;
fd->tid_n_pinned += pinned; fd->tid_n_pinned += pinned;
return pinned; return pinned;
} }
@ -334,6 +328,7 @@ int hfi1_user_exp_rcv_setup(struct hfi1_filedata *fd,
tidbuf->vaddr = tinfo->vaddr; tidbuf->vaddr = tinfo->vaddr;
tidbuf->length = tinfo->length; tidbuf->length = tinfo->length;
tidbuf->npages = num_user_pages(tidbuf->vaddr, tidbuf->length);
tidbuf->psets = kcalloc(uctxt->expected_count, sizeof(*tidbuf->psets), tidbuf->psets = kcalloc(uctxt->expected_count, sizeof(*tidbuf->psets),
GFP_KERNEL); GFP_KERNEL);
if (!tidbuf->psets) { if (!tidbuf->psets) {