> From: longli@xxxxxxxxxxxxxxxxx <longli@xxxxxxxxxxxxxxxxx> > 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? > @@ -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); > @@ -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@xxxxxxxxxxxxx>