From: "Jiawen Wu" <jiawenwu@trustnetic.com>
To: "'Vadim Fedorenko'" <vadim.fedorenko@linux.dev>,
<netdev@vger.kernel.org>, "'Andrew Lunn'" <andrew+netdev@lunn.ch>,
"'David S. Miller'" <davem@davemloft.net>,
"'Eric Dumazet'" <edumazet@google.com>,
"'Jakub Kicinski'" <kuba@kernel.org>,
"'Paolo Abeni'" <pabeni@redhat.com>,
"'Russell King'" <linux@armlinux.org.uk>,
"'Simon Horman'" <horms@kernel.org>,
"'Jacob Keller'" <jacob.e.keller@intel.com>,
<netdev@vger.kernel.org>, "'Andrew Lunn'" <andrew+netdev@lunn.ch>,
"'David S. Miller'" <davem@davemloft.net>,
"'Eric Dumazet'" <edumazet@google.com>,
"'Jakub Kicinski'" <kuba@kernel.org>,
"'Paolo Abeni'" <pabeni@redhat.com>,
"'Russell King'" <linux@armlinux.org.uk>,
"'Simon Horman'" <horms@kernel.org>,
"'Jacob Keller'" <jacob.e.keller@intel.com>
Cc: "'Mengyuan Lou'" <mengyuanlou@net-swift.com>,
"'Mengyuan Lou'" <mengyuanlou@net-swift.com>
Subject: RE: [PATCH net-next 5/5] net: txgbe: support getting module EEPROM by page
Date: Mon, 17 Nov 2025 14:26:20 +0800 [thread overview]
Message-ID: <012901dc578b$1683cf80$438b6e80$@trustnetic.com> (raw)
In-Reply-To: <4b9369f2-66fb-4c47-8bae-48577cf18c94@linux.dev>
> >>> +
> >>> + for (i = 0; i < dword_len; i++) {
> >>> + value = rd32a(wx, WX_FW2SW_MBOX, i);
> >>> + le32_to_cpus(&value);
> >>> +
> >>> + memcpy(&local_data[i * 4], &value, 4);
> >>> + }
> >>
> >> the logic here is not clear from the first read of the code. effectively
> >> in the reply you have the same txgbe_hic_i2c_read struct but without
> >> data field, which is obviously VLA, but then you simply skip the result
> >> of read of txgbe_hic_i2c_read and only provide the real data back to the
> >> caller. Maybe you can organize the code the way it can avoid double copying?
> >
> > Because the length of real data is variable, now it could be 1 or 128. But the total
> > length of the command buffer is DWORD aligned. So we designed only a 1-byte
> > data field in struct txgbe_hic_i2c_read, to avoid redundant reading and writing
> > during the SW-FW interaction.
> >
> > For 1-byte data, wx_host_interface_command() can be used to set 'return_data'
> > to true, then page->data = buffer->data. For other cases, I think it would be more
> > convenient to read directly from the mailbox registers.
>
> With such design you always have your return data starting at offset of
> 15, which is absolutely unaligned. And then it needs more buffer
> dancing.
OK. We could consider redesigning this buffer structure. Return data will start
at offset of 16, and reserve 4 bytes. And longer data will be directly read from
the mailbox register. Is this design more reasonable?
next prev parent reply other threads:[~2025-11-17 6:28 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-12 5:58 [PATCH net-next 0/5] TXGBE support more modules Jiawen Wu
2025-11-12 5:58 ` [PATCH net-next 1/5] net: txgbe: support CR modules for AML devices Jiawen Wu
2025-11-12 5:58 ` [PATCH net-next 2/5] net: txgbe: rename the SFP related Jiawen Wu
2025-11-12 5:58 ` [PATCH net-next 3/5] net: txgbe: improve functions of AML 40G devices Jiawen Wu
2025-11-12 5:58 ` [PATCH net-next 4/5] net: txgbe: delay to identify modules in .ndo_open Jiawen Wu
2025-11-12 5:58 ` [PATCH net-next 5/5] net: txgbe: support getting module EEPROM by page Jiawen Wu
2025-11-12 12:48 ` Vadim Fedorenko
2025-11-13 2:21 ` Jiawen Wu
2025-11-13 11:57 ` Vadim Fedorenko
2025-11-17 6:26 ` Jiawen Wu [this message]
2025-11-13 22:18 ` Andrew Lunn
2025-11-17 6:14 ` Jiawen Wu
2025-11-17 13:58 ` Andrew Lunn
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='012901dc578b$1683cf80$438b6e80$@trustnetic.com' \
--to=jiawenwu@trustnetic.com \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=jacob.e.keller@intel.com \
--cc=kuba@kernel.org \
--cc=linux@armlinux.org.uk \
--cc=mengyuanlou@net-swift.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=vadim.fedorenko@linux.dev \
/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).