All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vadim Fedorenko <vadim.fedorenko@linux.dev>
To: Fan Gong <gongfan1@huawei.com>, Zhu Yikai <zhuyikai1@h-partners.com>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Simon Horman <horms@kernel.org>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	linux-doc@vger.kernel.org, Jonathan Corbet <corbet@lwn.net>,
	Bjorn Helgaas <helgaas@kernel.org>, luosifu <luosifu@huawei.com>,
	Xin Guo <guoxin09@huawei.com>,
	Shen Chenyang <shenchenyang1@hisilicon.com>,
	Zhou Shuai <zhoushuai28@huawei.com>, Wu Like <wulike1@huawei.com>,
	Shi Jing <shijing34@huawei.com>,
	Meny Yossefi <meny.yossefi@huawei.com>,
	Gur Stavi <gur.stavi@huawei.com>, Lee Trager <lee@trager.us>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Suman Ghosh <sumang@marvell.com>,
	Przemek Kitszel <przemyslaw.kitszel@intel.com>,
	Joe Damato <jdamato@fastly.com>,
	Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Subject: Re: [PATCH net-next v01 01/12] hinic3: HW initialization
Date: Tue, 26 Aug 2025 12:37:22 +0100	[thread overview]
Message-ID: <95c43071-c78f-4202-9045-aacc6842b687@linux.dev> (raw)
In-Reply-To: <5f4589c1ab4f6736545a38096ce15b6569733c91.1756195078.git.zhuyikai1@h-partners.com>

On 26/08/2025 10:05, Fan Gong wrote:
> Add the hardware resource data structures, functions for HW initialization,
> configuration and releasement.
> 
> Co-developed-by: Xin Guo <guoxin09@huawei.com>
> Signed-off-by: Xin Guo <guoxin09@huawei.com>
> Co-developed-by: Zhu Yikai <zhuyikai1@h-partners.com>
> Signed-off-by: Zhu Yikai <zhuyikai1@h-partners.com>
> Signed-off-by: Fan Gong <gongfan1@huawei.com>
> ---
>   .../net/ethernet/huawei/hinic3/hinic3_hwdev.c |  67 ++++-
>   .../net/ethernet/huawei/hinic3/hinic3_hwif.c  | 240 ++++++++++++++++++
>   .../net/ethernet/huawei/hinic3/hinic3_hwif.h  |  13 +
>   .../net/ethernet/huawei/hinic3/hinic3_lld.c   |   8 +-
>   .../huawei/hinic3/hinic3_pci_id_tbl.h         |  10 +
>   5 files changed, 334 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_hwdev.c b/drivers/net/ethernet/huawei/hinic3/hinic3_hwdev.c
> index 6e8788a64925..d145d3b05e19 100644
> --- a/drivers/net/ethernet/huawei/hinic3/hinic3_hwdev.c
> +++ b/drivers/net/ethernet/huawei/hinic3/hinic3_hwdev.c
> @@ -7,15 +7,76 @@
>   #include "hinic3_mbox.h"
>   #include "hinic3_mgmt.h"
>   
> +#define HINIC3_HWDEV_WQ_NAME    "hinic3_hardware"
> +#define HINIC3_WQ_MAX_REQ       10
> +
> +enum hinic3_hwdev_init_state {
> +	HINIC3_HWDEV_MBOX_INITED = 2,
> +	HINIC3_HWDEV_CMDQ_INITED = 3,
> +};
> +
> +static int init_hwdev(struct pci_dev *pdev)
> +{
> +	struct hinic3_pcidev *pci_adapter = pci_get_drvdata(pdev);
> +	struct hinic3_hwdev *hwdev;
> +
> +	hwdev = kzalloc(sizeof(*hwdev), GFP_KERNEL);
> +	if (!hwdev)
> +		return -ENOMEM;
> +
> +	pci_adapter->hwdev = hwdev;
> +	hwdev->adapter = pci_adapter;
> +	hwdev->pdev = pci_adapter->pdev;
> +	hwdev->dev = &pci_adapter->pdev->dev;
> +	hwdev->func_state = 0;
> +	memset(hwdev->features, 0, sizeof(hwdev->features));

no need to init values to zeros as you use kzalloc to allocate the
memory

> +	spin_lock_init(&hwdev->channel_lock);
> +
> +	return 0;
> +}
> +
>   int hinic3_init_hwdev(struct pci_dev *pdev)
>   {
> -	/* Completed by later submission due to LoC limit. */
> -	return -EFAULT;
> +	struct hinic3_pcidev *pci_adapter = pci_get_drvdata(pdev);
> +	struct hinic3_hwdev *hwdev;
> +	int err;
> +
> +	err = init_hwdev(pdev);

I think there is no reason to have another init function

> +	if (err)
> +		return err;
> +
> +	hwdev = pci_adapter->hwdev;
> +	err = hinic3_init_hwif(hwdev);
> +	if (err) {
> +		dev_err(hwdev->dev, "Failed to init hwif\n");
> +		goto err_free_hwdev;
> +	}
> +
> +	hwdev->workq = alloc_workqueue(HINIC3_HWDEV_WQ_NAME, WQ_MEM_RECLAIM,
> +				       HINIC3_WQ_MAX_REQ);
> +	if (!hwdev->workq) {
> +		dev_err(hwdev->dev, "Failed to alloc hardware workq\n");
> +		err = -ENOMEM;
> +		goto err_free_hwif;
> +	}
> +
> +	return 0;
> +
> +err_free_hwif:
> +	hinic3_free_hwif(hwdev);
> +
> +err_free_hwdev:
> +	pci_adapter->hwdev = NULL;
> +	kfree(hwdev);
> +
> +	return err;
>   }

[...]

> @@ -121,6 +122,7 @@ static int hinic3_attach_aux_devices(struct hinic3_hwdev *hwdev)
>   			goto err_del_adevs;
>   	}
>   	mutex_unlock(&pci_adapter->pdev_mutex);
> +
>   	return 0;
>   
>   err_del_adevs:
> @@ -132,6 +134,7 @@ static int hinic3_attach_aux_devices(struct hinic3_hwdev *hwdev)
>   		}
>   	}
>   	mutex_unlock(&pci_adapter->pdev_mutex);
> +
>   	return -ENOMEM;
>   }
>   
> @@ -153,6 +156,7 @@ struct hinic3_hwdev *hinic3_adev_get_hwdev(struct auxiliary_device *adev)
>   	struct hinic3_adev *hadev;
>   
>   	hadev = container_of(adev, struct hinic3_adev, adev);
> +
>   	return hadev->hwdev;
>   }
>   
> @@ -333,6 +337,7 @@ static int hinic3_probe_func(struct hinic3_pcidev *pci_adapter)
>   
>   err_out:
>   	dev_err(&pdev->dev, "PCIe device probe function failed\n");
> +
>   	return err;
>   }
>   
> @@ -365,6 +370,7 @@ static int hinic3_probe(struct pci_dev *pdev, const struct pci_device_id *id)
>   
>   err_out:
>   	dev_err(&pdev->dev, "PCIe device probe failed\n");
> +
>   	return err;
>   }
>   

not sure it's good to have this empty lines in this particular patch

  reply	other threads:[~2025-08-26 11:37 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-26  9:05 [PATCH net-next v01 00/12] net: hinic3: Add a driver for Huawei 3rd gen NIC - sw and hw initialization Fan Gong
2025-08-26  9:05 ` [PATCH net-next v01 01/12] hinic3: HW initialization Fan Gong
2025-08-26 11:37   ` Vadim Fedorenko [this message]
2025-08-26 19:52   ` ALOK TIWARI
2025-08-26  9:05 ` [PATCH net-next v01 02/12] hinic3: HW management interfaces Fan Gong
2025-08-26  9:05 ` [PATCH net-next v01 03/12] hinic3: HW common function initialization Fan Gong
2025-08-26  9:05 ` [PATCH net-next v01 04/12] hinic3: HW capability initialization Fan Gong
2025-08-26 14:17   ` Vadim Fedorenko
2025-08-26  9:05 ` [PATCH net-next v01 05/12] hinic3: Command Queue flush interfaces Fan Gong
2025-08-26  9:05 ` [PATCH net-next v01 06/12] hinic3: Nic_io initialization Fan Gong
2025-08-26 15:49   ` Vadim Fedorenko
2025-08-26  9:05 ` [PATCH net-next v01 07/12] hinic3: Queue pair resource initialization Fan Gong
2025-08-26 16:08   ` Vadim Fedorenko
2025-08-26 20:05   ` ALOK TIWARI
2025-08-26  9:05 ` [PATCH net-next v01 08/12] hinic3: Queue pair context initialization Fan Gong
2025-08-26 16:42   ` Vadim Fedorenko
2025-08-26  9:05 ` [PATCH net-next v01 09/12] hinic3: Tx & Rx configuration Fan Gong
2025-08-26  9:05 ` [PATCH net-next v01 10/12] hinic3: Add Rss function Fan Gong
2025-08-26 17:06   ` Vadim Fedorenko
2025-08-26 17:49     ` Jakub Kicinski
2025-08-26 17:54   ` Eric Dumazet
2025-08-27  9:50     ` Fan Gong
2025-08-26  9:05 ` [PATCH net-next v01 11/12] hinic3: Add port management Fan Gong
2025-08-26  9:05 ` [PATCH net-next v01 12/12] hinic3: Fix missing napi->dev in netif_queue_set_napi Fan Gong

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=95c43071-c78f-4202-9045-aacc6842b687@linux.dev \
    --to=vadim.fedorenko@linux.dev \
    --cc=andrew+netdev@lunn.ch \
    --cc=christophe.jaillet@wanadoo.fr \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=gongfan1@huawei.com \
    --cc=guoxin09@huawei.com \
    --cc=gur.stavi@huawei.com \
    --cc=helgaas@kernel.org \
    --cc=horms@kernel.org \
    --cc=jdamato@fastly.com \
    --cc=kuba@kernel.org \
    --cc=lee@trager.us \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luosifu@huawei.com \
    --cc=meny.yossefi@huawei.com \
    --cc=mpe@ellerman.id.au \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=przemyslaw.kitszel@intel.com \
    --cc=shenchenyang1@hisilicon.com \
    --cc=shijing34@huawei.com \
    --cc=sumang@marvell.com \
    --cc=wulike1@huawei.com \
    --cc=zhoushuai28@huawei.com \
    --cc=zhuyikai1@h-partners.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.