Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
All conflicts seemed rather trivial, with some guidance from Saeed Mameed on the tc_ct.c one. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -830,6 +830,29 @@ wq_error:
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
/**
|
||||
* destroy_workqueues - destroy per port workqueues
|
||||
* @dd: the hfi1_ib device
|
||||
*/
|
||||
static void destroy_workqueues(struct hfi1_devdata *dd)
|
||||
{
|
||||
int pidx;
|
||||
struct hfi1_pportdata *ppd;
|
||||
|
||||
for (pidx = 0; pidx < dd->num_pports; ++pidx) {
|
||||
ppd = dd->pport + pidx;
|
||||
|
||||
if (ppd->hfi1_wq) {
|
||||
destroy_workqueue(ppd->hfi1_wq);
|
||||
ppd->hfi1_wq = NULL;
|
||||
}
|
||||
if (ppd->link_wq) {
|
||||
destroy_workqueue(ppd->link_wq);
|
||||
ppd->link_wq = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* enable_general_intr() - Enable the IRQs that will be handled by the
|
||||
* general interrupt handler.
|
||||
@@ -1103,15 +1126,10 @@ static void shutdown_device(struct hfi1_devdata *dd)
|
||||
* We can't count on interrupts since we are stopping.
|
||||
*/
|
||||
hfi1_quiet_serdes(ppd);
|
||||
|
||||
if (ppd->hfi1_wq) {
|
||||
destroy_workqueue(ppd->hfi1_wq);
|
||||
ppd->hfi1_wq = NULL;
|
||||
}
|
||||
if (ppd->link_wq) {
|
||||
destroy_workqueue(ppd->link_wq);
|
||||
ppd->link_wq = NULL;
|
||||
}
|
||||
if (ppd->hfi1_wq)
|
||||
flush_workqueue(ppd->hfi1_wq);
|
||||
if (ppd->link_wq)
|
||||
flush_workqueue(ppd->link_wq);
|
||||
}
|
||||
sdma_exit(dd);
|
||||
}
|
||||
@@ -1756,6 +1774,7 @@ static void remove_one(struct pci_dev *pdev)
|
||||
* clear dma engines, etc.
|
||||
*/
|
||||
shutdown_device(dd);
|
||||
destroy_workqueues(dd);
|
||||
|
||||
stop_timers(dd);
|
||||
|
||||
|
@@ -195,7 +195,7 @@ static inline int verbs_mtu_enum_to_int(struct ib_device *dev, enum ib_mtu mtu)
|
||||
{
|
||||
/* Constraining 10KB packets to 8KB packets */
|
||||
if (mtu == (enum ib_mtu)OPA_MTU_10240)
|
||||
mtu = OPA_MTU_8192;
|
||||
mtu = (enum ib_mtu)OPA_MTU_8192;
|
||||
return opa_mtu_enum_to_int((enum opa_mtu)mtu);
|
||||
}
|
||||
|
||||
@@ -367,7 +367,10 @@ bool _hfi1_schedule_send(struct rvt_qp *qp)
|
||||
struct hfi1_ibport *ibp =
|
||||
to_iport(qp->ibqp.device, qp->port_num);
|
||||
struct hfi1_pportdata *ppd = ppd_from_ibp(ibp);
|
||||
struct hfi1_devdata *dd = dd_from_ibdev(qp->ibqp.device);
|
||||
struct hfi1_devdata *dd = ppd->dd;
|
||||
|
||||
if (dd->flags & HFI1_SHUTDOWN)
|
||||
return true;
|
||||
|
||||
return iowait_schedule(&priv->s_iowait, ppd->hfi1_wq,
|
||||
priv->s_sde ?
|
||||
|
@@ -5406,7 +5406,10 @@ static bool _hfi1_schedule_tid_send(struct rvt_qp *qp)
|
||||
struct hfi1_ibport *ibp =
|
||||
to_iport(qp->ibqp.device, qp->port_num);
|
||||
struct hfi1_pportdata *ppd = ppd_from_ibp(ibp);
|
||||
struct hfi1_devdata *dd = dd_from_ibdev(qp->ibqp.device);
|
||||
struct hfi1_devdata *dd = ppd->dd;
|
||||
|
||||
if ((dd->flags & HFI1_SHUTDOWN))
|
||||
return true;
|
||||
|
||||
return iowait_tid_schedule(&priv->s_iowait, ppd->hfi1_wq,
|
||||
priv->s_sde ?
|
||||
|
@@ -511,7 +511,7 @@ static int mlx5_query_port_roce(struct ib_device *device, u8 port_num,
|
||||
mdev_port_num);
|
||||
if (err)
|
||||
goto out;
|
||||
ext = MLX5_CAP_PCAM_FEATURE(dev->mdev, ptys_extended_ethernet);
|
||||
ext = !!MLX5_GET_ETH_PROTO(ptys_reg, out, true, eth_proto_capability);
|
||||
eth_prot_oper = MLX5_GET_ETH_PROTO(ptys_reg, out, ext, eth_proto_oper);
|
||||
|
||||
props->active_width = IB_WIDTH_4X;
|
||||
|
@@ -2668,6 +2668,10 @@ static int process_create_flags(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *qp,
|
||||
if (qp_type == IB_QPT_RAW_PACKET && attr->rwq_ind_tbl)
|
||||
return (create_flags) ? -EINVAL : 0;
|
||||
|
||||
process_create_flag(dev, &create_flags, IB_QP_CREATE_NETIF_QP,
|
||||
mlx5_get_flow_namespace(dev->mdev,
|
||||
MLX5_FLOW_NAMESPACE_BYPASS),
|
||||
qp);
|
||||
process_create_flag(dev, &create_flags,
|
||||
IB_QP_CREATE_INTEGRITY_EN,
|
||||
MLX5_CAP_GEN(mdev, sho), qp);
|
||||
@@ -3001,11 +3005,12 @@ destroy_qp:
|
||||
mlx5_ib_destroy_dct(qp);
|
||||
} else {
|
||||
/*
|
||||
* The two lines below are temp solution till QP allocation
|
||||
* These lines below are temp solution till QP allocation
|
||||
* will be moved to be under IB/core responsiblity.
|
||||
*/
|
||||
qp->ibqp.send_cq = attr->send_cq;
|
||||
qp->ibqp.recv_cq = attr->recv_cq;
|
||||
qp->ibqp.pd = pd;
|
||||
destroy_qp_common(dev, qp, udata);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user