Thread (56 messages) 56 messages, 8 authors, 2022-08-03

RE: [Patch v4 03/12] net: mana: Handle vport sharing between devices

From: Dexuan Cui <decui@microsoft.com>
Date: 2022-07-11 01:13:44
Also in: linux-hyperv, linux-rdma, lkml

From: longli@linuxonhyperv.com <redacted>
Sent: Wednesday, June 15, 2022 7:07 PM
+void mana_uncfg_vport(struct mana_port_context *apc)
+{
+	mutex_lock(&apc->vport_mutex);
+	apc->vport_use_count--;
+	WARN_ON(apc->vport_use_count < 0);
+	mutex_unlock(&apc->vport_mutex);
+}
+EXPORT_SYMBOL_GPL(mana_uncfg_vport);
+
+int mana_cfg_vport(struct mana_port_context *apc, u32 protection_dom_id,
+		   u32 doorbell_pg_id)
 {
 	struct mana_config_vport_resp resp = {};
 	struct mana_config_vport_req req = {};
 	int err;

+	/* Ethernet driver and IB driver can't take the port at the same time */
+	mutex_lock(&apc->vport_mutex);
+	if (apc->vport_use_count > 0) {
+		mutex_unlock(&apc->vport_mutex);
+		return -ENODEV;
Maybe -EBUSY is better?
quoted hunk ↗ jump to hunk
@@ -563,9 +581,19 @@ static int mana_cfg_vport(struct mana_port_context
*apc, u32 protection_dom_id,

 	apc->tx_shortform_allowed = resp.short_form_allowed;
 	apc->tx_vp_offset = resp.tx_vport_offset;
+
+	netdev_info(apc->ndev, "Configured vPort %llu PD %u DB %u\n",
+		    apc->port_handle, protection_dom_id, doorbell_pg_id);
Should this be netdev_dbg()?
The log buffer can be flooded if there are many vPorts per VF PCI device and
there are a lot of VFs.
 out:
+	if (err) {
+		mutex_lock(&apc->vport_mutex);
+		apc->vport_use_count--;
+		mutex_unlock(&apc->vport_mutex);
+	}
Change this to the blelow?
    if (err)
        mana_uncfg_vport(apc);
quoted hunk ↗ jump to hunk
@@ -626,6 +654,9 @@ static int mana_cfg_vport_steering(struct
mana_port_context *apc,
 			   resp.hdr.status);
 		err = -EPROTO;
 	}
+
+	netdev_info(ndev, "Configured steering vPort %llu entries %u\n",
+		    apc->port_handle, num_entries);
netdev_dbg()?

In general, the patch looks good to me.
Reviewed-by: Dexuan Cui <decui@microsoft.com>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help