> -----Original Message----- > From: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx> > Sent: Thursday, April 15, 2021 5:08 PM > To: Dexuan Cui <decui@xxxxxxxxxxxxx> > Cc: davem@xxxxxxxxxxxxx; kuba@xxxxxxxxxx; KY Srinivasan > <kys@xxxxxxxxxxxxx>; Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>; Stephen > Hemminger <sthemmin@xxxxxxxxxxxxx>; wei.liu@xxxxxxxxxx; Wei Liu > <liuwe@xxxxxxxxxxxxx>; netdev@xxxxxxxxxxxxxxx; leon@xxxxxxxxxx; > andrew@xxxxxxx; bernd@xxxxxxxxxxxxxxxxxxx; rdunlap@xxxxxxxxxxxxx; > Shachar Raindel <shacharr@xxxxxxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx; > linux-hyperv@xxxxxxxxxxxxxxx > Subject: Re: [PATCH v6 net-next] net: mana: Add a driver for Microsoft Azure > Network Adapter (MANA) > > On Wed, 14 Apr 2021 22:45:19 -0700 > Dexuan Cui <decui@xxxxxxxxxxxxx> wrote: > > > +static int mana_query_vport_cfg(struct mana_port_context *apc, u32 > vport_index, > > + u32 *max_sq, u32 *max_rq, u32 > *num_indir_entry) { > > + struct mana_query_vport_cfg_resp resp = {}; > > + struct mana_query_vport_cfg_req req = {}; > > + int err; > > + > > + mana_gd_init_req_hdr(&req.hdr, MANA_QUERY_VPORT_CONFIG, > > + sizeof(req), sizeof(resp)); > > + > > + req.vport_index = vport_index; > > + > > + err = mana_send_request(apc->ac, &req, sizeof(req), &resp, > > + sizeof(resp)); > > + if (err) > > + return err; > > + > > + err = mana_verify_resp_hdr(&resp.hdr, > MANA_QUERY_VPORT_CONFIG, > > + sizeof(resp)); > > + if (err) > > + return err; > > + > > + if (resp.hdr.status) > > + return -EPROTO; > > + > > + *max_sq = resp.max_num_sq; > > + *max_rq = resp.max_num_rq; > > + *num_indir_entry = resp.num_indirection_ent; > > + > > + apc->port_handle = resp.vport; > > + memcpy(apc->mac_addr, resp.mac_addr, ETH_ALEN); > > You could use ether_addr_copy here. > > > > +int mana_do_attach(struct net_device *ndev, enum mana_attach_caller > > +caller) { > > + struct mana_port_context *apc = netdev_priv(ndev); > > + struct gdma_dev *gd = apc->ac->gdma_dev; > > + u32 max_txq, max_rxq, max_queues; > > + int port_idx = apc->port_idx; > > + u32 num_indirect_entries; > > + int err; > > + > > + if (caller == MANA_OPEN) > > + goto start_open; > > + > > + err = mana_init_port_context(apc); > > + if (err) > > + return err; > > + > > + err = mana_query_vport_cfg(apc, port_idx, &max_txq, &max_rxq, > > + &num_indirect_entries); > > + if (err) { > > + netdev_err(ndev, "Failed to query info for vPort 0\n"); > > + goto reset_apc; > > + } > > + > > + max_queues = min_t(u32, max_txq, max_rxq); > > + if (apc->max_queues > max_queues) > > + apc->max_queues = max_queues; > > + > > + if (apc->num_queues > apc->max_queues) > > + apc->num_queues = apc->max_queues; > > + > > + memcpy(ndev->dev_addr, apc->mac_addr, ETH_ALEN); > > And here use ether_addr_copy(). Thanks, I will update these. - Haiyang