Merge branch 'linus/master' into rdma.git for-next
rdma.git merge resolution for the 4.19 merge window Conflicts: drivers/infiniband/core/rdma_core.c - Use the rdma code and revise with the new spelling for atomic_fetch_add_unless drivers/nvme/host/rdma.c - Replace max_sge with max_send_sge in new blk code drivers/nvme/target/rdma.c - Use the blk code and revise to use NULL for ib_post_recv when appropriate - Replace max_sge with max_recv_sge in new blk code net/rds/ib_send.c - Use the net code and revise to use NULL for ib_post_recv when appropriate Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
@@ -79,7 +79,7 @@ static int uverbs_try_lock_object(struct ib_uobject *uobj,
|
||||
*/
|
||||
switch (mode) {
|
||||
case UVERBS_LOOKUP_READ:
|
||||
return __atomic_add_unless(&uobj->usecnt, 1, -1) == -1 ?
|
||||
return atomic_fetch_add_unless(&uobj->usecnt, 1, -1) == -1 ?
|
||||
-EBUSY : 0;
|
||||
case UVERBS_LOOKUP_WRITE:
|
||||
/* lock is exclusive */
|
||||
|
@@ -900,9 +900,7 @@ static int trigger_sbr(struct hfi1_devdata *dd)
|
||||
* delay after a reset is required. Per spec requirements,
|
||||
* the link is either working or not after that point.
|
||||
*/
|
||||
pci_reset_bridge_secondary_bus(dev->bus->self);
|
||||
|
||||
return 0;
|
||||
return pci_reset_bus(dev);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -421,7 +421,7 @@ tx_finish:
|
||||
|
||||
static u16 hfi1_vnic_select_queue(struct net_device *netdev,
|
||||
struct sk_buff *skb,
|
||||
void *accel_priv,
|
||||
struct net_device *sb_dev,
|
||||
select_queue_fallback_t fallback)
|
||||
{
|
||||
struct hfi1_vnic_vport_info *vinfo = opa_vnic_dev_priv(netdev);
|
||||
|
@@ -1480,7 +1480,7 @@ static int hns_roce_v1_reset(struct hns_roce_dev *hr_dev, bool dereset)
|
||||
}
|
||||
fwnode = &dsaf_node->fwnode;
|
||||
} else if (is_acpi_device_node(dev->fwnode)) {
|
||||
struct acpi_reference_args args;
|
||||
struct fwnode_reference_args args;
|
||||
|
||||
ret = acpi_node_get_property_reference(dev->fwnode,
|
||||
"dsaf-handle", 0, &args);
|
||||
@@ -1488,7 +1488,7 @@ static int hns_roce_v1_reset(struct hns_roce_dev *hr_dev, bool dereset)
|
||||
dev_err(dev, "could not find dsaf-handle\n");
|
||||
return ret;
|
||||
}
|
||||
fwnode = acpi_fwnode_handle(args.adev);
|
||||
fwnode = args.fwnode;
|
||||
} else {
|
||||
dev_err(dev, "cannot read data from DT or ACPI\n");
|
||||
return -ENXIO;
|
||||
@@ -4917,16 +4917,14 @@ static int hns_roce_get_cfg(struct hns_roce_dev *hr_dev)
|
||||
continue;
|
||||
pdev = of_find_device_by_node(net_node);
|
||||
} else if (is_acpi_device_node(dev->fwnode)) {
|
||||
struct acpi_reference_args args;
|
||||
struct fwnode_handle *fwnode;
|
||||
struct fwnode_reference_args args;
|
||||
|
||||
ret = acpi_node_get_property_reference(dev->fwnode,
|
||||
"eth-handle",
|
||||
i, &args);
|
||||
if (ret)
|
||||
continue;
|
||||
fwnode = acpi_fwnode_handle(args.adev);
|
||||
pdev = hns_roce_find_pdev(fwnode);
|
||||
pdev = hns_roce_find_pdev(args.fwnode);
|
||||
} else {
|
||||
dev_err(dev, "cannot read data from DT or ACPI\n");
|
||||
return -ENXIO;
|
||||
|
@@ -311,7 +311,7 @@ iser_set_dif_domain(struct scsi_cmnd *sc, struct ib_sig_attrs *sig_attrs,
|
||||
{
|
||||
domain->sig_type = IB_SIG_TYPE_T10_DIF;
|
||||
domain->sig.dif.pi_interval = scsi_prot_interval(sc);
|
||||
domain->sig.dif.ref_tag = scsi_prot_ref_tag(sc);
|
||||
domain->sig.dif.ref_tag = t10_pi_ref_tag(sc->request);
|
||||
/*
|
||||
* At the moment we hard code those, but in the future
|
||||
* we will take them from sc.
|
||||
|
@@ -95,7 +95,7 @@ static netdev_tx_t opa_netdev_start_xmit(struct sk_buff *skb,
|
||||
}
|
||||
|
||||
static u16 opa_vnic_select_queue(struct net_device *netdev, struct sk_buff *skb,
|
||||
void *accel_priv,
|
||||
struct net_device *sb_dev,
|
||||
select_queue_fallback_t fallback)
|
||||
{
|
||||
struct opa_vnic_adapter *adapter = opa_vnic_priv(netdev);
|
||||
@@ -107,7 +107,7 @@ static u16 opa_vnic_select_queue(struct net_device *netdev, struct sk_buff *skb,
|
||||
mdata->entropy = opa_vnic_calc_entropy(skb);
|
||||
mdata->vl = opa_vnic_get_vl(adapter, skb);
|
||||
rc = adapter->rn_ops->ndo_select_queue(netdev, skb,
|
||||
accel_priv, fallback);
|
||||
sb_dev, fallback);
|
||||
skb_pull(skb, sizeof(*mdata));
|
||||
return rc;
|
||||
}
|
||||
|
@@ -2028,8 +2028,7 @@ static void srpt_release_channel_work(struct work_struct *w)
|
||||
target_sess_cmd_list_set_waiting(se_sess);
|
||||
target_wait_for_sess_cmds(se_sess);
|
||||
|
||||
transport_deregister_session_configfs(se_sess);
|
||||
transport_deregister_session(se_sess);
|
||||
target_remove_session(se_sess);
|
||||
ch->sess = NULL;
|
||||
|
||||
if (ch->using_rdma_cm)
|
||||
@@ -2220,16 +2219,16 @@ static int srpt_cm_req_recv(struct srpt_device *const sdev,
|
||||
pr_debug("registering session %s\n", ch->sess_name);
|
||||
|
||||
if (sport->port_guid_tpg.se_tpg_wwn)
|
||||
ch->sess = target_alloc_session(&sport->port_guid_tpg, 0, 0,
|
||||
ch->sess = target_setup_session(&sport->port_guid_tpg, 0, 0,
|
||||
TARGET_PROT_NORMAL,
|
||||
ch->sess_name, ch, NULL);
|
||||
if (sport->port_gid_tpg.se_tpg_wwn && IS_ERR_OR_NULL(ch->sess))
|
||||
ch->sess = target_alloc_session(&sport->port_gid_tpg, 0, 0,
|
||||
ch->sess = target_setup_session(&sport->port_gid_tpg, 0, 0,
|
||||
TARGET_PROT_NORMAL, i_port_id, ch,
|
||||
NULL);
|
||||
/* Retry without leading "0x" */
|
||||
if (sport->port_gid_tpg.se_tpg_wwn && IS_ERR_OR_NULL(ch->sess))
|
||||
ch->sess = target_alloc_session(&sport->port_gid_tpg, 0, 0,
|
||||
ch->sess = target_setup_session(&sport->port_gid_tpg, 0, 0,
|
||||
TARGET_PROT_NORMAL,
|
||||
i_port_id + 2, ch, NULL);
|
||||
if (IS_ERR_OR_NULL(ch->sess)) {
|
||||
@@ -3610,11 +3609,9 @@ static struct configfs_attribute *srpt_tpg_attrs[] = {
|
||||
/**
|
||||
* srpt_make_tpg - configfs callback invoked for mkdir /sys/kernel/config/target/$driver/$port/$tpg
|
||||
* @wwn: Corresponds to $driver/$port.
|
||||
* @group: Not used.
|
||||
* @name: $tpg.
|
||||
*/
|
||||
static struct se_portal_group *srpt_make_tpg(struct se_wwn *wwn,
|
||||
struct config_group *group,
|
||||
const char *name)
|
||||
{
|
||||
struct srpt_port *sport = wwn->priv;
|
||||
|
Reference in New Issue
Block a user