Subject: Re: [PATCH net-next v5 07/10] net: libwx: allocate devlink for devlink port

From: Simon Horman <[email-masked]>
Date: Mon, 5 Aug 2024 17:41:14 +0100

On Sun, Aug 04, 2024 at 08:48:38PM +0800, Mengyuan Lou wrote:
> Make devlink allocation function generic to use it for PF and for VF.
> 
> Add function for PF/VF devlink port creation. It will be used in
> wangxun NICs.
> 
> Signed-off-by: Mengyuan Lou <[email-masked]>

...

> diff --git a/drivers/net/ethernet/wangxun/libwx/wx_devlink.c b/drivers/net/ethernet/wangxun/libwx/wx_devlink.c
> new file mode 100644
> index 000000000000..b39da37c0842
> --- /dev/null
> +++ b/drivers/net/ethernet/wangxun/libwx/wx_devlink.c
> @@ -0,0 +1,208 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/* Copyright (c) 2015 - 2024 Beijing WangXun Technology Co., Ltd. */
> +
> +#include <linux/vmalloc.h>
> +#include <linux/pci.h>
> +
> +#include "wx_type.h"
> +#include "wx_sriov.h"
> +#include "wx_devlink.h"
> +
> +static const struct devlink_ops wx_pf_devlink_ops = {
> +};
> +
> +static void wx_devlink_free(void *devlink_ptr)
> +{
> +	devlink_unregister((struct devlink *)devlink_ptr);
> +	devlink_free((struct devlink *)devlink_ptr);
> +}
> +
> +struct wx_dl_priv *wx_create_devlink(struct device *dev)
> +{
> +	struct devlink *devlink;
> +
> +	devlink = devlink_alloc(&wx_pf_devlink_ops, sizeof(devlink), dev);

Perhaps this should be sizeof(wx_dl_priv *) ?

Flagged by Coccinelle.

> +	if (!devlink)
> +		return NULL;
> +
> +	/* Add an action to teardown the devlink when unwinding the driver */
> +	if (devm_add_action_or_reset(dev, wx_devlink_free, devlink))
> +		return NULL;
> +
> +	devlink_register(devlink);
> +
> +	return devlink_priv(devlink);
> +}
> +EXPORT_SYMBOL(wx_create_devlink);

...