Commit f17c4c68 authored by Kamenee Arumugam's avatar Kamenee Arumugam Committed by Greg Kroah-Hartman

IB/hfi1: Validate page aligned for a given virtual address

[ Upstream commit 97736f36 ]

User applications can register memory regions for TID buffers that are not
aligned on page boundaries. Hfi1 is expected to pin those pages in memory
and cache the pages with mmu_rb. The rb tree will fail to insert pages
that are not aligned correctly.

Validate whether a given virtual address is page aligned before pinning.

Fixes: 7e7a436e ("staging/hfi1: Add TID entry program function body")
Reviewed-by: default avatarMichael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: default avatarKamenee Arumugam <kamenee.arumugam@intel.com>
Signed-off-by: default avatarDennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 1ac3c4db
...@@ -324,6 +324,9 @@ int hfi1_user_exp_rcv_setup(struct hfi1_filedata *fd, ...@@ -324,6 +324,9 @@ int hfi1_user_exp_rcv_setup(struct hfi1_filedata *fd,
u32 *tidlist = NULL; u32 *tidlist = NULL;
struct tid_user_buf *tidbuf; struct tid_user_buf *tidbuf;
if (!PAGE_ALIGNED(tinfo->vaddr))
return -EINVAL;
tidbuf = kzalloc(sizeof(*tidbuf), GFP_KERNEL); tidbuf = kzalloc(sizeof(*tidbuf), GFP_KERNEL);
if (!tidbuf) if (!tidbuf)
return -ENOMEM; return -ENOMEM;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment