diff options
| author | David S. Miller <davem@davemloft.net> | 2023-02-17 11:06:39 +0000 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2023-02-17 11:06:39 +0000 |
| commit | 675f176b4dcc2b75adbcea7ba0e9a649527f53bd (patch) | |
| tree | dc5eea870c19b405bb6558964e5367bb6c9205c5 /drivers/infiniband/hw/hfi1/file_ops.c | |
| parent | 84cb1b53cdbad52642571e31a8aee301206d2043 (diff) | |
| parent | ec35307e18ba8174e2a3f701956059f6a36f22fb (diff) | |
Merge ra.kernel.org:/pub/scm/linux/kernel/git/netdev/net
Some of the devlink bits were tricky, but I think I got it right.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/infiniband/hw/hfi1/file_ops.c')
| -rw-r--r-- | drivers/infiniband/hw/hfi1/file_ops.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/hfi1/file_ops.c b/drivers/infiniband/hw/hfi1/file_ops.c index f5f9269fdc16..7c5d487ec916 100644 --- a/drivers/infiniband/hw/hfi1/file_ops.c +++ b/drivers/infiniband/hw/hfi1/file_ops.c @@ -1318,12 +1318,15 @@ static int user_exp_rcv_setup(struct hfi1_filedata *fd, unsigned long arg, addr = arg + offsetof(struct hfi1_tid_info, tidcnt); if (copy_to_user((void __user *)addr, &tinfo.tidcnt, sizeof(tinfo.tidcnt))) - return -EFAULT; + ret = -EFAULT; addr = arg + offsetof(struct hfi1_tid_info, length); - if (copy_to_user((void __user *)addr, &tinfo.length, + if (!ret && copy_to_user((void __user *)addr, &tinfo.length, sizeof(tinfo.length))) ret = -EFAULT; + + if (ret) + hfi1_user_exp_rcv_invalid(fd, &tinfo); } return ret; |