From: Simon Horman <horms@kernel.org>
To: Fan Gong <gongfan1@huawei.com>
Cc: Zhu Yikai <zhuyikai1@h-partners.com>,
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>,
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>,
Fu Guiming <fuguiming@h-partners.com>,
Meny Yossefi <meny.yossefi@huawei.com>,
Gur Stavi <gur.stavi@huawei.com>, Lee Trager <lee@trager.us>,
Michael Ellerman <mpe@ellerman.id.au>,
Vadim Fedorenko <vadim.fedorenko@linux.dev>,
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 v10 1/8] hinic3: Async Event Queue interfaces
Date: Wed, 23 Jul 2025 09:19:08 +0100 [thread overview]
Message-ID: <20250723081908.GW2459@horms.kernel.org> (raw)
In-Reply-To: <bea50c6c329c5ffb77cfe059e07eeed187619346.1753152592.git.zhuyikai1@h-partners.com>
On Tue, Jul 22, 2025 at 03:18:40PM +0800, Fan Gong wrote:
> Add async event queue interfaces initialization.
> It allows driver to handle async events reported by HW.
>
> 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>
...
> diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_common.c b/drivers/net/ethernet/huawei/hinic3/hinic3_common.c
> index 0aa42068728c..a5aaf6febba9 100644
> --- a/drivers/net/ethernet/huawei/hinic3/hinic3_common.c
> +++ b/drivers/net/ethernet/huawei/hinic3/hinic3_common.c
> @@ -51,3 +51,16 @@ void hinic3_dma_free_coherent_align(struct device *dev,
> dma_free_coherent(dev, mem_align->real_size,
> mem_align->ori_vaddr, mem_align->ori_paddr);
> }
> +
> +/* Data provided to/by cmdq is arranged in structs with little endian fields but
> + * every dword (32bits) should be swapped since HW swaps it again when it
> + * copies it from/to host memory.
> + */
This scheme may work on little endian hosts.
But if so it seems unlikely to work on big endian hosts.
I expect you want be32_to_cpu_array() for data coming from hw,
with a source buffer as an array of __be32 while
the destination buffer is an array of u32.
And cpu_to_be32_array() for data going to the hw,
with the types of the source and destination buffers reversed.
If those types don't match your data, then we have
a framework to have that discussion.
That said, it is more usual for drivers to keep structures in the byte
order they are received. Stored in structures with members with types, in
this case it seems that would be __be32, and accessed using a combination
of BIT/GENMASK, FIELD_PREP/FIELD_GET, and cpu_to_be*/be*_to_cpu (in this
case cpu_to_be32/be32_to_cpu).
An advantage of this approach is that the byte order of
data is only changed when needed. Another is that it is clear
what the byte order of data is.
> +void hinic3_cmdq_buf_swab32(void *data, int len)
> +{
> + u32 *mem = data;
> + u32 i;
> +
> + for (i = 0; i < len / sizeof(u32); i++)
> + mem[i] = swab32(mem[i]);
> +}
This seems to open code swab32_array().
...
next prev parent reply other threads:[~2025-07-23 8:19 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-22 7:18 [PATCH net-next v10 0/8] net: hinic3: Add a driver for Huawei 3rd gen NIC - management interfaces Fan Gong
2025-07-22 7:18 ` [PATCH net-next v10 1/8] hinic3: Async Event Queue interfaces Fan Gong
2025-07-22 14:36 ` Simon Horman
2025-07-23 8:19 ` Simon Horman [this message]
2025-07-24 13:45 ` Fan Gong
2025-07-25 15:27 ` Simon Horman
2025-07-31 10:49 ` Fan Gong
2025-07-31 13:39 ` Simon Horman
2025-07-31 14:09 ` Simon Horman
2025-07-31 12:58 ` Gur Stavi
2025-07-31 14:04 ` Simon Horman
2025-07-31 18:34 ` Gur Stavi
2025-07-31 20:31 ` Simon Horman
2025-07-23 11:34 ` kernel test robot
2025-07-22 7:18 ` [PATCH net-next v10 2/8] hinic3: Complete " Fan Gong
2025-07-23 10:03 ` Simon Horman
2025-07-22 7:18 ` [PATCH net-next v10 3/8] hinic3: Command Queue framework Fan Gong
2025-07-22 7:18 ` [PATCH net-next v10 4/8] hinic3: Command Queue interfaces Fan Gong
2025-07-22 7:18 ` [PATCH net-next v10 5/8] hinic3: TX & RX Queue coalesce interfaces Fan Gong
2025-07-22 7:18 ` [PATCH net-next v10 6/8] hinic3: Mailbox framework Fan Gong
2025-07-23 10:35 ` Simon Horman
2025-07-22 7:18 ` [PATCH net-next v10 7/8] hinic3: Mailbox management interfaces Fan Gong
2025-07-23 10:51 ` Simon Horman
2025-07-22 7:18 ` [PATCH net-next v10 8/8] hinic3: Interrupt request configuration 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=20250723081908.GW2459@horms.kernel.org \
--to=horms@kernel.org \
--cc=andrew+netdev@lunn.ch \
--cc=christophe.jaillet@wanadoo.fr \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=fuguiming@h-partners.com \
--cc=gongfan1@huawei.com \
--cc=guoxin09@huawei.com \
--cc=gur.stavi@huawei.com \
--cc=helgaas@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=vadim.fedorenko@linux.dev \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).