IB/hfi1: Prevent a NULL dereference
In the original code, we set "fd->uctxt" to NULL and then dereference it
which will cause an Oops.
Fixes: f2a3bc00a0
("IB/hfi1: Protect context array set/clear with spinlock")
Cc: <stable@vger.kernel.org> # 4.14.x
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
cd52cb26e7
commit
57194fa763
|
@ -763,11 +763,11 @@ static int complete_subctxt(struct hfi1_filedata *fd)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret) {
|
if (ret) {
|
||||||
hfi1_rcd_put(fd->uctxt);
|
|
||||||
fd->uctxt = NULL;
|
|
||||||
spin_lock_irqsave(&fd->dd->uctxt_lock, flags);
|
spin_lock_irqsave(&fd->dd->uctxt_lock, flags);
|
||||||
__clear_bit(fd->subctxt, fd->uctxt->in_use_ctxts);
|
__clear_bit(fd->subctxt, fd->uctxt->in_use_ctxts);
|
||||||
spin_unlock_irqrestore(&fd->dd->uctxt_lock, flags);
|
spin_unlock_irqrestore(&fd->dd->uctxt_lock, flags);
|
||||||
|
hfi1_rcd_put(fd->uctxt);
|
||||||
|
fd->uctxt = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in New Issue