Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: drivers/infiniband/hw/cxgb4/device.c The cxgb4 conflict was simply overlapping changes. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -433,8 +433,17 @@ static void arp_failure_discard(void *handle, struct sk_buff *skb)
|
||||
*/
|
||||
static void act_open_req_arp_failure(void *handle, struct sk_buff *skb)
|
||||
{
|
||||
struct c4iw_ep *ep = handle;
|
||||
|
||||
printk(KERN_ERR MOD "ARP failure duing connect\n");
|
||||
kfree_skb(skb);
|
||||
connect_reply_upcall(ep, -EHOSTUNREACH);
|
||||
state_set(&ep->com, DEAD);
|
||||
remove_handle(ep->com.dev, &ep->com.dev->atid_idr, ep->atid);
|
||||
cxgb4_free_atid(ep->com.dev->rdev.lldi.tids, ep->atid);
|
||||
dst_release(ep->dst);
|
||||
cxgb4_l2t_release(ep->l2t);
|
||||
c4iw_put_ep(&ep->com);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -660,7 +669,7 @@ static int send_connect(struct c4iw_ep *ep)
|
||||
opt2 |= T5_OPT_2_VALID;
|
||||
opt2 |= V_CONG_CNTRL(CONG_ALG_TAHOE);
|
||||
}
|
||||
t4_set_arp_err_handler(skb, NULL, act_open_req_arp_failure);
|
||||
t4_set_arp_err_handler(skb, ep, act_open_req_arp_failure);
|
||||
|
||||
if (is_t4(ep->com.dev->rdev.lldi.adapter_type)) {
|
||||
if (ep->com.remote_addr.ss_family == AF_INET) {
|
||||
@@ -2219,7 +2228,6 @@ static void reject_cr(struct c4iw_dev *dev, u32 hwtid, struct sk_buff *skb)
|
||||
PDBG("%s c4iw_dev %p tid %u\n", __func__, dev, hwtid);
|
||||
BUG_ON(skb_cloned(skb));
|
||||
skb_trim(skb, sizeof(struct cpl_tid_release));
|
||||
skb_get(skb);
|
||||
release_tid(&dev->rdev, hwtid, skb);
|
||||
return;
|
||||
}
|
||||
@@ -3969,7 +3977,7 @@ int __init c4iw_cm_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void __exit c4iw_cm_term(void)
|
||||
void c4iw_cm_term(void)
|
||||
{
|
||||
WARN_ON(!list_empty(&timeout_list));
|
||||
flush_workqueue(workq);
|
||||
|
@@ -844,6 +844,7 @@ static int c4iw_rdev_open(struct c4iw_rdev *rdev)
|
||||
pr_err(MOD "error allocating status page\n");
|
||||
goto err4;
|
||||
}
|
||||
|
||||
if (c4iw_wr_log) {
|
||||
rdev->wr_log = kzalloc((1 << c4iw_wr_log_size_order) *
|
||||
sizeof(*rdev->wr_log), GFP_KERNEL);
|
||||
@@ -854,6 +855,9 @@ static int c4iw_rdev_open(struct c4iw_rdev *rdev)
|
||||
pr_err(MOD "error allocating wr_log. Logging disabled\n");
|
||||
}
|
||||
}
|
||||
|
||||
rdev->status_page->db_off = 0;
|
||||
|
||||
return 0;
|
||||
err4:
|
||||
c4iw_rqtpool_destroy(rdev);
|
||||
@@ -888,7 +892,6 @@ static void c4iw_dealloc(struct uld_ctx *ctx)
|
||||
if (ctx->dev->rdev.oc_mw_kva)
|
||||
iounmap(ctx->dev->rdev.oc_mw_kva);
|
||||
ib_dealloc_device(&ctx->dev->ibdev);
|
||||
iwpm_exit(RDMA_NL_C4IW);
|
||||
ctx->dev = NULL;
|
||||
}
|
||||
|
||||
@@ -1007,12 +1010,6 @@ static struct c4iw_dev *c4iw_alloc(const struct cxgb4_lld_info *infop)
|
||||
setup_debugfs(devp);
|
||||
}
|
||||
|
||||
ret = iwpm_init(RDMA_NL_C4IW);
|
||||
if (ret) {
|
||||
pr_err("port mapper initialization failed with %d\n", ret);
|
||||
ib_dealloc_device(&devp->ibdev);
|
||||
return ERR_PTR(ret);
|
||||
}
|
||||
|
||||
return devp;
|
||||
}
|
||||
@@ -1513,6 +1510,15 @@ static int __init c4iw_init_module(void)
|
||||
pr_err("%s[%u]: Failed to add netlink callback\n"
|
||||
, __func__, __LINE__);
|
||||
|
||||
err = iwpm_init(RDMA_NL_C4IW);
|
||||
if (err) {
|
||||
pr_err("port mapper initialization failed with %d\n", err);
|
||||
ibnl_remove_client(RDMA_NL_C4IW);
|
||||
c4iw_cm_term();
|
||||
debugfs_remove_recursive(c4iw_debugfs_root);
|
||||
return err;
|
||||
}
|
||||
|
||||
cxgb4_register_uld(CXGB4_ULD_RDMA, &c4iw_uld_info);
|
||||
|
||||
return 0;
|
||||
@@ -1530,6 +1536,7 @@ static void __exit c4iw_exit_module(void)
|
||||
}
|
||||
mutex_unlock(&dev_mutex);
|
||||
cxgb4_unregister_uld(CXGB4_ULD_RDMA);
|
||||
iwpm_exit(RDMA_NL_C4IW);
|
||||
ibnl_remove_client(RDMA_NL_C4IW);
|
||||
c4iw_cm_term();
|
||||
debugfs_remove_recursive(c4iw_debugfs_root);
|
||||
|
@@ -943,7 +943,7 @@ int c4iw_destroy_ctrl_qp(struct c4iw_rdev *rdev);
|
||||
int c4iw_register_device(struct c4iw_dev *dev);
|
||||
void c4iw_unregister_device(struct c4iw_dev *dev);
|
||||
int __init c4iw_cm_init(void);
|
||||
void __exit c4iw_cm_term(void);
|
||||
void c4iw_cm_term(void);
|
||||
void c4iw_release_dev_ucontext(struct c4iw_rdev *rdev,
|
||||
struct c4iw_dev_ucontext *uctx);
|
||||
void c4iw_init_dev_ucontext(struct c4iw_rdev *rdev,
|
||||
|
@@ -675,7 +675,7 @@ static int create_kernel_qp(struct mlx5_ib_dev *dev,
|
||||
int err;
|
||||
|
||||
uuari = &dev->mdev.priv.uuari;
|
||||
if (init_attr->create_flags & ~IB_QP_CREATE_SIGNATURE_EN)
|
||||
if (init_attr->create_flags & ~(IB_QP_CREATE_SIGNATURE_EN | IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK))
|
||||
return -EINVAL;
|
||||
|
||||
if (init_attr->qp_type == MLX5_IB_QPT_REG_UMR)
|
||||
|
Reference in New Issue
Block a user