]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
RDMA/hfi1: Prevent panic when SDMA is disabled
authorDouglas Miller <doug.miller@cornelisnetworks.com>
Fri, 20 May 2022 18:37:06 +0000 (14:37 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 14 Jun 2022 14:59:18 +0000 (16:59 +0200)
commit0e4dda8b3f4c07ee9ea670a10ea3171a5e63a86f
tree68cfa4a98aa14a993f4c73c4107211679bae0d89
parent542633306d18ef697c55603f52bc58b464a0479f
RDMA/hfi1: Prevent panic when SDMA is disabled

[ Upstream commit 629e052d0c98e46dde9f0824f0aa437f678d9b8f ]

If the hfi1 module is loaded with HFI1_CAP_SDMA off, a call to
hfi1_write_iter() will dereference a NULL pointer and panic. A typical
stack frame is:

  sdma_select_user_engine [hfi1]
  hfi1_user_sdma_process_request [hfi1]
  hfi1_write_iter [hfi1]
  do_iter_readv_writev
  do_iter_write
  vfs_writev
  do_writev
  do_syscall_64

The fix is to test for SDMA in hfi1_write_iter() and fail the I/O with
EINVAL.

Link: https://lore.kernel.org/r/20220520183706.48973.79803.stgit@awfm-01.cornelisnetworks.com
Signed-off-by: Douglas Miller <doug.miller@cornelisnetworks.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/hfi1/file_ops.c