diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-07-06 11:45:08 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-07-06 11:45:08 -0700 |
commit | 9871ab22f2784b2823b01522772a72ee4fc9d1fa (patch) | |
tree | 3f4c1d2f7be6fe32d161efe0fbb9557350fa78e1 /include/rdma/ib_verbs.h | |
parent | ac7b75966c9c86426b55fe1c50ae148aa4571075 (diff) | |
parent | 8e959601996dc645f4ed7004482a1667c27deb39 (diff) |
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma
Pull rdma update from Doug Ledford:
"This includes two bugs against the newly added opa vnic that were
found by turning on the debug kernel options:
- sleeping while holding a lock, so a one line fix where they
switched it from GFP_KERNEL allocation to a GFP_ATOMIC allocation
- a case where they had an isolated caller of their code that could
call them in an atomic context so they had to switch their use of a
mutex to a spinlock to be safe, so this was considerably more lines
of diff because all uses of that lock had to be switched
In addition, the bug that was discussed with you already about an out
of bounds array access in ib_uverbs_modify_qp and ib_uverbs_create_ah
and is only seven lines of diff.
And finally, one fix to an earlier fix in the -rc cycle that broke
hfi1 and qib in regards to IPoIB (this one is, unfortunately, larger
than I would like for a -rc7 submission, but fixing the problem
required that we not treat all devices as though they had allocated a
netdev universally because it isn't true, and it took 70 lines of diff
to resolve the issue, but the final patch has been vetted by Intel and
Mellanox and they've both given their approval to the fix).
Summary:
- Two fixes for OPA found by debug kernel
- Fix for user supplied input causing kernel problems
- Fix for the IPoIB fixes submitted around -rc4"
[ Doug sent this having not noticed the 4.12 release, so I guess I'll be
getting another rdma pull request with the actuakl merge window
updates and not just fixes.
Oh well - it would have been nice if this small update had been the
merge window one. - Linus ]
* tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma:
IB/core, opa_vnic, hfi1, mlx5: Properly free rdma_netdev
RDMA/uverbs: Check port number supplied by user verbs cmds
IB/opa_vnic: Use spinlock instead of mutex for stats_lock
IB/opa_vnic: Use GFP_ATOMIC while sending trap
Diffstat (limited to 'include/rdma/ib_verbs.h')
-rw-r--r-- | include/rdma/ib_verbs.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h index 0e480a5630d4..356953d3dbd1 100644 --- a/include/rdma/ib_verbs.h +++ b/include/rdma/ib_verbs.h @@ -1968,6 +1968,9 @@ struct rdma_netdev { struct ib_device *hca; u8 port_num; + /* cleanup function must be specified */ + void (*free_rdma_netdev)(struct net_device *netdev); + /* control functions */ void (*set_id)(struct net_device *netdev, int id); /* send packet */ @@ -2243,7 +2246,7 @@ struct ib_device { struct ib_udata *udata); int (*destroy_rwq_ind_table)(struct ib_rwq_ind_table *wq_ind_table); /** - * rdma netdev operations + * rdma netdev operation * * Driver implementing alloc_rdma_netdev must return -EOPNOTSUPP if it * doesn't support the specified rdma netdev type. @@ -2255,7 +2258,6 @@ struct ib_device { const char *name, unsigned char name_assign_type, void (*setup)(struct net_device *)); - void (*free_rdma_netdev)(struct net_device *netdev); struct module *owner; struct device dev; |