All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Pirko <jiri@resnulli.us>
To: alejandro.lucero-palau@amd.com
Cc: netdev@vger.kernel.org, linux-net-drivers@amd.com,
	davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com,
	edumazet@google.com, habetsm@gmail.com, ecree.xilinx@gmail.com
Subject: Re: [PATCH net-next 7/7] sfc: add support for devlink port_function_hw_addr_set in ef100
Date: Thu, 19 Jan 2023 13:27:15 +0100	[thread overview]
Message-ID: <Y8k3I2Ibd+xYlC5o@nanopsycho> (raw)
In-Reply-To: <20230119113140.20208-8-alejandro.lucero-palau@amd.com>

Thu, Jan 19, 2023 at 12:31:40PM CET, alejandro.lucero-palau@amd.com wrote:
>From: Alejandro Lucero <alejandro.lucero-palau@amd.com>
>
>Using the builtin client handle id infrastructure, this patch adds
>support for setting the mac address linked to mports in ef100. This
>implies to execute an MCDI command for giving the address to the
>firmware for the specific devlink port.
>
>Signed-off-by: Alejandro Lucero <alejandro.lucero-palau@amd.com>
>---
> drivers/net/ethernet/sfc/efx_devlink.c | 44 ++++++++++++++++++++++++++
> 1 file changed, 44 insertions(+)
>
>diff --git a/drivers/net/ethernet/sfc/efx_devlink.c b/drivers/net/ethernet/sfc/efx_devlink.c
>index 2a57c4f6d2b2..a85b2d4e54ab 100644
>--- a/drivers/net/ethernet/sfc/efx_devlink.c
>+++ b/drivers/net/ethernet/sfc/efx_devlink.c
>@@ -472,6 +472,49 @@ static int efx_devlink_port_addr_get(struct devlink_port *port, u8 *hw_addr,
> 	return rc;
> }
> 
>+static int efx_devlink_port_addr_set(struct devlink_port *port,

Similar comments here as for the _get callback: embed devlink_port
struct, use extack.


>+				     const u8 *hw_addr, int hw_addr_len,
>+				     struct netlink_ext_ack *extack)
>+{
>+	MCDI_DECLARE_BUF(inbuf, MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LEN(1));
>+	struct efx_devlink *devlink = devlink_priv(port->devlink);
>+	struct mae_mport_desc *mport_desc;
>+	efx_qword_t pciefn;
>+	u32 client_id;
>+	int rc;
>+
>+	mport_desc = efx_mae_get_mport(devlink->efx, port->index);
>+	if (!mport_desc)
>+		return -EINVAL;
>+
>+	if (!ef100_mport_is_vf(mport_desc))
>+		return -EPERM;
>+
>+	EFX_POPULATE_QWORD_3(pciefn,
>+			     PCIE_FUNCTION_PF, PCIE_FUNCTION_PF_NULL,
>+			     PCIE_FUNCTION_VF, mport_desc->vf_idx,
>+			     PCIE_FUNCTION_INTF, PCIE_INTERFACE_CALLER);
>+
>+	rc = efx_ef100_lookup_client_id(devlink->efx, pciefn, &client_id);
>+	if (rc) {
>+		netif_err(devlink->efx, drv, devlink->efx->net_dev,
>+			  "Failed to get client ID for port index %u, rc %d\n",
>+			  port->index, rc);
>+		return rc;
>+	}
>+
>+	MCDI_SET_DWORD(inbuf, SET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE,
>+		       client_id);
>+
>+	ether_addr_copy(MCDI_PTR(inbuf, SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS),
>+			hw_addr);
>+
>+	rc = efx_mcdi_rpc(devlink->efx, MC_CMD_SET_CLIENT_MAC_ADDRESSES, inbuf,
>+			  sizeof(inbuf), NULL, 0, NULL);
>+
>+	return rc;
>+}
>+
> static int efx_devlink_info_get(struct devlink *devlink,
> 				struct devlink_info_req *req,
> 				struct netlink_ext_ack *extack)
>@@ -486,6 +529,7 @@ static int efx_devlink_info_get(struct devlink *devlink,
> static const struct devlink_ops sfc_devlink_ops = {
> 	.info_get			= efx_devlink_info_get,
> 	.port_function_hw_addr_get	= efx_devlink_port_addr_get,
>+	.port_function_hw_addr_set	= efx_devlink_port_addr_set,
> };
> 
> static struct devlink_port *ef100_set_devlink_port(struct efx_nic *efx, u32 idx)
>-- 
>2.17.1
>

  reply	other threads:[~2023-01-19 12:28 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-19 11:31 [PATCH net-next 0/7] sfc: devlink support for ef100 alejandro.lucero-palau
2023-01-19 11:31 ` [PATCH net-next 1/7] sfc: add " alejandro.lucero-palau
2023-01-19 12:14   ` Jiri Pirko
2023-01-19 14:51     ` Lucero Palau, Alejandro
2023-01-19 16:29       ` Lucero Palau, Alejandro
2023-01-20 11:02         ` Jiri Pirko
2023-01-20 11:00       ` Jiri Pirko
2023-01-19 15:50   ` kernel test robot
2023-01-19 17:16   ` Jakub Kicinski
2023-01-19 17:52     ` Lucero Palau, Alejandro
2023-01-19 18:44       ` Jakub Kicinski
2023-01-19 19:08         ` Lucero Palau, Alejandro
2023-01-19 23:40   ` Jacob Keller
2023-01-20 14:11     ` Lucero Palau, Alejandro
2023-01-24  6:13       ` Edward Cree
2023-01-24  7:31         ` Lucero Palau, Alejandro
2023-01-24 11:05     ` Lucero Palau, Alejandro
2023-01-24 22:12       ` Jacob Keller
2023-01-20 13:59   ` kernel test robot
2023-01-19 11:31 ` [PATCH net-next 2/7] sfc: enumerate mports in ef100 alejandro.lucero-palau
2023-01-19 23:48   ` Jacob Keller
2023-01-20 14:13     ` Lucero Palau, Alejandro
2023-01-20 12:47   ` kernel test robot
2023-01-19 11:31 ` [PATCH net-next 3/7] sfc: add mport lookup based on driver's mport data alejandro.lucero-palau
2023-01-19 23:57   ` Jacob Keller
2023-01-20  9:34     ` Lucero Palau, Alejandro
2023-01-20 18:36       ` Keller, Jacob E
2023-01-19 11:31 ` [PATCH net-next 4/7] sfc: add devlink port support for ef100 alejandro.lucero-palau
2023-01-19 12:33   ` Jiri Pirko
2023-01-19 15:03     ` Lucero Palau, Alejandro
2023-01-19 13:37   ` kernel test robot
2023-01-20 21:21   ` kernel test robot
2023-01-19 11:31 ` [PATCH net-next 5/7] sfc: obtain device mac address based on firmware handle " alejandro.lucero-palau
2023-01-19 19:47   ` kernel test robot
2023-01-20  0:03   ` Jacob Keller
2023-01-19 11:31 ` [PATCH net-next 6/7] sfc: add support for port_function_hw_addr_get devlink in ef100 alejandro.lucero-palau
2023-01-19 12:25   ` Jiri Pirko
2023-01-19 14:59     ` Lucero Palau, Alejandro
2023-01-20 11:05       ` Jiri Pirko
2023-01-22 16:41         ` Lucero Palau, Alejandro
2023-01-19 12:37   ` Jiri Pirko
2023-01-19 15:09     ` Lucero Palau, Alejandro
2023-01-20 11:08       ` Jiri Pirko
2023-01-20 12:48         ` Lucero Palau, Alejandro
2023-01-22 16:36           ` Lucero Palau, Alejandro
2023-01-23  8:38             ` Jiri Pirko
2023-01-23  9:45               ` Lucero Palau, Alejandro
2023-01-23 10:18                 ` Jiri Pirko
2023-01-19 11:31 ` [PATCH net-next 7/7] sfc: add support for devlink port_function_hw_addr_set " alejandro.lucero-palau
2023-01-19 12:27   ` Jiri Pirko [this message]
2023-01-19 15:10     ` Lucero Palau, Alejandro
2023-01-20  8:55 ` [PATCH net-next 0/7] sfc: devlink support for ef100 Martin Habets

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y8k3I2Ibd+xYlC5o@nanopsycho \
    --to=jiri@resnulli.us \
    --cc=alejandro.lucero-palau@amd.com \
    --cc=davem@davemloft.net \
    --cc=ecree.xilinx@gmail.com \
    --cc=edumazet@google.com \
    --cc=habetsm@gmail.com \
    --cc=kuba@kernel.org \
    --cc=linux-net-drivers@amd.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.