Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
Pull rdma updates from Jason Gunthorpe: "The majority of the patches are cleanups, refactorings and clarity improvements. This cycle saw some more activity from Syzkaller, I think we are now clean on all but one of those bugs, including the long standing and obnoxious rdma_cm locking design defect. Continue to see many drivers getting cleanups, with a few new user visible features. Summary: - Various driver updates for siw, bnxt_re, rxe, efa, mlx5, hfi1 - Lots of cleanup patches for hns - Convert more places to use refcount - Aggressively lock the RDMA CM code that syzkaller says isn't working - Work to clarify ib_cm - Use the new ib_device lifecycle model in bnxt_re - Fix mlx5's MR cache which seems to be failing more often with the new ODP code - mlx5 'dynamic uar' and 'tx steering' user interfaces" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (144 commits) RDMA/bnxt_re: make bnxt_re_ib_init static IB/qib: Delete struct qib_ivdev.qp_rnd RDMA/hns: Fix uninitialized variable bug RDMA/hns: Modify the mask of QP number for CQE of hip08 RDMA/hns: Reduce the maximum number of extend SGE per WQE RDMA/hns: Reduce PFC frames in congestion scenarios RDMA/mlx5: Add support for RDMA TX flow table net/mlx5: Add support for RDMA TX steering IB/hfi1: Call kobject_put() when kobject_init_and_add() fails IB/hfi1: Fix memory leaks in sysfs registration and unregistration IB/mlx5: Move to fully dynamic UAR mode once user space supports it IB/mlx5: Limit the scope of struct mlx5_bfreg_info to mlx5_ib IB/mlx5: Extend QP creation to get uar page index from user space IB/mlx5: Extend CQ creation to get uar page index from user space IB/mlx5: Expose UAR object and its alloc/destroy commands IB/hfi1: Get rid of a warning RDMA/hns: Remove redundant judgment of qp_type RDMA/hns: Remove redundant assignment of wc->smac when polling cq RDMA/hns: Remove redundant qpc setup operations RDMA/hns: Remove meaningless prints ...
This commit is contained in:
@@ -838,6 +838,4 @@ extern int ipoib_debug_level;
|
||||
|
||||
#define IPOIB_QPN(ha) (be32_to_cpup((__be32 *) ha) & 0xffffff)
|
||||
|
||||
extern const char ipoib_driver_version[];
|
||||
|
||||
#endif /* _IPOIB_H */
|
||||
|
@@ -68,9 +68,6 @@ static void ipoib_get_drvinfo(struct net_device *netdev,
|
||||
strlcpy(drvinfo->bus_info, dev_name(priv->ca->dev.parent),
|
||||
sizeof(drvinfo->bus_info));
|
||||
|
||||
strlcpy(drvinfo->version, ipoib_driver_version,
|
||||
sizeof(drvinfo->version));
|
||||
|
||||
strlcpy(drvinfo->driver, "ib_ipoib", sizeof(drvinfo->driver));
|
||||
}
|
||||
|
||||
|
@@ -52,10 +52,6 @@
|
||||
#include <linux/inetdevice.h>
|
||||
#include <rdma/ib_cache.h>
|
||||
|
||||
#define DRV_VERSION "1.0.0"
|
||||
|
||||
const char ipoib_driver_version[] = DRV_VERSION;
|
||||
|
||||
MODULE_AUTHOR("Roland Dreier");
|
||||
MODULE_DESCRIPTION("IP-over-InfiniBand net driver");
|
||||
MODULE_LICENSE("Dual BSD/GPL");
|
||||
|
@@ -292,12 +292,27 @@ void iser_unreg_mem_fastreg(struct iscsi_iser_task *iser_task,
|
||||
{
|
||||
struct iser_device *device = iser_task->iser_conn->ib_conn.device;
|
||||
struct iser_mem_reg *reg = &iser_task->rdma_reg[cmd_dir];
|
||||
struct iser_fr_desc *desc;
|
||||
struct ib_mr_status mr_status;
|
||||
|
||||
if (!reg->mem_h)
|
||||
desc = reg->mem_h;
|
||||
if (!desc)
|
||||
return;
|
||||
|
||||
device->reg_ops->reg_desc_put(&iser_task->iser_conn->ib_conn,
|
||||
reg->mem_h);
|
||||
/*
|
||||
* The signature MR cannot be invalidated and reused without checking.
|
||||
* libiscsi calls the check_protection transport handler only if
|
||||
* SCSI-Response is received. And the signature MR is not checked if
|
||||
* the task is completed for some other reason like a timeout or error
|
||||
* handling. That's why we must check the signature MR here before
|
||||
* putting it to the free pool.
|
||||
*/
|
||||
if (unlikely(desc->sig_protected)) {
|
||||
desc->sig_protected = false;
|
||||
ib_check_mr_status(desc->rsc.sig_mr, IB_MR_CHECK_SIG_STATUS,
|
||||
&mr_status);
|
||||
}
|
||||
device->reg_ops->reg_desc_put(&iser_task->iser_conn->ib_conn, desc);
|
||||
reg->mem_h = NULL;
|
||||
}
|
||||
|
||||
|
@@ -239,7 +239,7 @@ struct opa_veswport_mactable_entry {
|
||||
* @offset: mac table starting offset
|
||||
* @num_entries: Number of entries to get or set
|
||||
* @mac_tbl_digest: mac table digest
|
||||
* @tbl_entries[]: Array of table entries
|
||||
* @tbl_entries: Array of table entries
|
||||
*
|
||||
* The EM sends down this structure in a MAD indicating
|
||||
* the starting offset in the forwarding table that this
|
||||
@@ -258,7 +258,7 @@ struct opa_veswport_mactable {
|
||||
__be16 offset;
|
||||
__be16 num_entries;
|
||||
__be32 mac_tbl_digest;
|
||||
struct opa_veswport_mactable_entry tbl_entries[0];
|
||||
struct opa_veswport_mactable_entry tbl_entries[];
|
||||
} __packed;
|
||||
|
||||
/**
|
||||
@@ -440,7 +440,7 @@ struct opa_veswport_iface_macs {
|
||||
__be16 num_macs_in_msg;
|
||||
__be16 tot_macs_in_lst;
|
||||
__be16 gen_count;
|
||||
struct opa_vnic_iface_mac_entry entry[0];
|
||||
struct opa_vnic_iface_mac_entry entry[];
|
||||
} __packed;
|
||||
|
||||
/**
|
||||
|
@@ -125,8 +125,6 @@ static void vnic_get_drvinfo(struct net_device *netdev,
|
||||
struct ethtool_drvinfo *drvinfo)
|
||||
{
|
||||
strlcpy(drvinfo->driver, opa_vnic_driver_name, sizeof(drvinfo->driver));
|
||||
strlcpy(drvinfo->version, opa_vnic_driver_version,
|
||||
sizeof(drvinfo->version));
|
||||
strlcpy(drvinfo->bus_info, dev_name(netdev->dev.parent),
|
||||
sizeof(drvinfo->bus_info));
|
||||
}
|
||||
|
@@ -292,7 +292,6 @@ struct opa_vnic_mac_tbl_node {
|
||||
hlist_for_each_entry(obj, &name[bkt], member)
|
||||
|
||||
extern char opa_vnic_driver_name[];
|
||||
extern const char opa_vnic_driver_version[];
|
||||
|
||||
struct opa_vnic_adapter *opa_vnic_add_netdev(struct ib_device *ibdev,
|
||||
u8 port_num, u8 vport_num);
|
||||
|
@@ -59,9 +59,7 @@
|
||||
|
||||
#include "opa_vnic_internal.h"
|
||||
|
||||
#define DRV_VERSION "1.0"
|
||||
char opa_vnic_driver_name[] = "opa_vnic";
|
||||
const char opa_vnic_driver_version[] = DRV_VERSION;
|
||||
|
||||
/*
|
||||
* The trap service level is kept in bits 3 to 7 in the trap_sl_rsvd
|
||||
@@ -1041,9 +1039,6 @@ static int __init opa_vnic_init(void)
|
||||
{
|
||||
int rc;
|
||||
|
||||
pr_info("OPA Virtual Network Driver - v%s\n",
|
||||
opa_vnic_driver_version);
|
||||
|
||||
rc = ib_register_client(&opa_vnic_client);
|
||||
if (rc)
|
||||
pr_err("VNIC driver register failed %d\n", rc);
|
||||
|
@@ -309,7 +309,7 @@ struct srp_fr_pool {
|
||||
int max_page_list_len;
|
||||
spinlock_t lock;
|
||||
struct list_head free_list;
|
||||
struct srp_fr_desc desc[0];
|
||||
struct srp_fr_desc desc[];
|
||||
};
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user