Merge branch 'rdma-netlink' into k.o/merge-test
Conflicts: include/rdma/ib_verbs.h - Modified a function signature adjacent to a newly added function signature from a previous merge Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
@@ -64,6 +64,8 @@
|
||||
#include <linux/cgroup_rdma.h>
|
||||
#include <uapi/rdma/ib_user_verbs.h>
|
||||
|
||||
#define IB_FW_VERSION_NAME_MAX ETHTOOL_FWVERS_LEN
|
||||
|
||||
extern struct workqueue_struct *ib_wq;
|
||||
extern struct workqueue_struct *ib_comp_wq;
|
||||
|
||||
@@ -2298,6 +2300,8 @@ struct ib_device {
|
||||
struct rdmacg_device cg_device;
|
||||
#endif
|
||||
|
||||
u32 index;
|
||||
|
||||
/**
|
||||
* The following mandatory functions are used only at device
|
||||
* registration. Keep functions such as these at the end of this
|
||||
@@ -2305,7 +2309,7 @@ struct ib_device {
|
||||
* in fast paths.
|
||||
*/
|
||||
int (*get_port_immutable)(struct ib_device *, u8, struct ib_port_immutable *);
|
||||
void (*get_dev_fw_str)(struct ib_device *, char *str, size_t str_len);
|
||||
void (*get_dev_fw_str)(struct ib_device *, char *str);
|
||||
const struct cpumask *(*get_vector_affinity)(struct ib_device *ibdev,
|
||||
int comp_vector);
|
||||
};
|
||||
@@ -2343,7 +2347,7 @@ struct ib_client {
|
||||
struct ib_device *ib_alloc_device(size_t size);
|
||||
void ib_dealloc_device(struct ib_device *device);
|
||||
|
||||
void ib_get_device_fw_str(struct ib_device *device, char *str, size_t str_len);
|
||||
void ib_get_device_fw_str(struct ib_device *device, char *str);
|
||||
|
||||
int ib_register_device(struct ib_device *device,
|
||||
int (*port_callback)(struct ib_device *,
|
||||
|
@@ -5,29 +5,31 @@
|
||||
#include <linux/netlink.h>
|
||||
#include <uapi/rdma/rdma_netlink.h>
|
||||
|
||||
struct ibnl_client_cbs {
|
||||
struct rdma_nl_cbs {
|
||||
int (*doit)(struct sk_buff *skb, struct nlmsghdr *nlh,
|
||||
struct netlink_ext_ack *extack);
|
||||
int (*dump)(struct sk_buff *skb, struct netlink_callback *nlcb);
|
||||
struct module *module;
|
||||
u8 flags;
|
||||
};
|
||||
|
||||
enum rdma_nl_flags {
|
||||
/* Require CAP_NET_ADMIN */
|
||||
RDMA_NL_ADMIN_PERM = 1 << 0,
|
||||
};
|
||||
|
||||
/**
|
||||
* Add a a client to the list of IB netlink exporters.
|
||||
* Register client in RDMA netlink.
|
||||
* @index: Index of the added client
|
||||
* @nops: Number of supported ops by the added client.
|
||||
* @cb_table: A table for op->callback
|
||||
*
|
||||
* Returns 0 on success or a negative error code.
|
||||
*/
|
||||
int ibnl_add_client(int index, int nops,
|
||||
const struct ibnl_client_cbs cb_table[]);
|
||||
void rdma_nl_register(unsigned int index,
|
||||
const struct rdma_nl_cbs cb_table[]);
|
||||
|
||||
/**
|
||||
* Remove a client from IB netlink.
|
||||
* @index: Index of the removed IB client.
|
||||
*
|
||||
* Returns 0 on success or a negative error code.
|
||||
*/
|
||||
int ibnl_remove_client(int index);
|
||||
void rdma_nl_unregister(unsigned int index);
|
||||
|
||||
/**
|
||||
* Put a new message in a supplied skb.
|
||||
@@ -56,22 +58,32 @@ int ibnl_put_attr(struct sk_buff *skb, struct nlmsghdr *nlh,
|
||||
/**
|
||||
* Send the supplied skb to a specific userspace PID.
|
||||
* @skb: The netlink skb
|
||||
* @nlh: Header of the netlink message to send
|
||||
* @pid: Userspace netlink process ID
|
||||
* Returns 0 on success or a negative error code.
|
||||
*/
|
||||
int ibnl_unicast(struct sk_buff *skb, struct nlmsghdr *nlh,
|
||||
__u32 pid);
|
||||
int rdma_nl_unicast(struct sk_buff *skb, u32 pid);
|
||||
|
||||
/**
|
||||
* Send, with wait/1 retry, the supplied skb to a specific userspace PID.
|
||||
* @skb: The netlink skb
|
||||
* @pid: Userspace netlink process ID
|
||||
* Returns 0 on success or a negative error code.
|
||||
*/
|
||||
int rdma_nl_unicast_wait(struct sk_buff *skb, __u32 pid);
|
||||
|
||||
/**
|
||||
* Send the supplied skb to a netlink group.
|
||||
* @skb: The netlink skb
|
||||
* @nlh: Header of the netlink message to send
|
||||
* @group: Netlink group ID
|
||||
* @flags: allocation flags
|
||||
* Returns 0 on success or a negative error code.
|
||||
*/
|
||||
int ibnl_multicast(struct sk_buff *skb, struct nlmsghdr *nlh,
|
||||
unsigned int group, gfp_t flags);
|
||||
int rdma_nl_multicast(struct sk_buff *skb, unsigned int group, gfp_t flags);
|
||||
|
||||
/**
|
||||
* Check if there are any listeners to the netlink group
|
||||
* @group: the netlink group ID
|
||||
* Returns 0 on success or a negative for no listeners.
|
||||
*/
|
||||
int rdma_nl_chk_listeners(unsigned int group);
|
||||
#endif /* _RDMA_NETLINK_H */
|
||||
|
Reference in New Issue
Block a user