From: Al Viro <viro@zeniv.linux.org.uk>
To: Heiner Kallweit <hkallweit1@gmail.com>
Cc: Realtek linux nic maintainers <nic_swsd@realtek.com>,
David Miller <davem@davemloft.net>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: Re: [PATCH net-next] r8169: fix ntohs/htons sparse warnings
Date: Mon, 1 Jul 2019 20:56:21 +0100 [thread overview]
Message-ID: <20190701195621.GC17978@ZenIV.linux.org.uk> (raw)
In-Reply-To: <1d1f9dba-1ade-7782-6cc0-3151a7086a4b@gmail.com>
On Mon, Jul 01, 2019 at 09:35:28PM +0200, Heiner Kallweit wrote:
> Sparse complains about casting to/from restricted __be16. Fix this.
Fix what, exactly? Force-cast is not a fix - it's "STFU, I know
better, it's really correct" to sparse. Which may or may not
match the reality, but it definitely requires more in way of
commit message than "sparse says it's wrong; shut it up".
> static void rtl8169_rx_vlan_tag(struct RxDesc *desc, struct sk_buff *skb)
> @@ -1537,7 +1537,7 @@ static void rtl8169_rx_vlan_tag(struct RxDesc *desc, struct sk_buff *skb)
>
> if (opts2 & RxVlanTag)
> __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q),
> - ntohs(opts2 & 0xffff));
> + ntohs((__force __be16)(opts2 & 0xffff)));
> }
Should that be ntohs at all? What behaviour is correct on big-endian host?
AFAICS, in that code opts2 comes from little-endian 32bit. It's converted to
host-endian, lower 16 bits (i.e. the first two octets in memory) are then
fed to ntohs. Suppose we had in-core value stored as A0, A1, A2, A3.
On little-endian that code will yield A0 * 256 + A1, treated as host-endian.
On big-endian the same will yield A1 * 256 + A0. Is that actually correct?
The code dealing with the value passed to __vlan_hwaccel_put_tag() as the
third argument treats it as a host-endian integer. So... Has anyone
tested that code on b-e host? Should that ntohs() actually be swab16(),
yielding (on any host) the same value we currently get for l-e hosts only?
next prev parent reply other threads:[~2019-07-01 19:56 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-01 19:35 [PATCH net-next] r8169: fix ntohs/htons sparse warnings Heiner Kallweit
2019-07-01 19:56 ` Al Viro [this message]
2019-07-01 20:36 ` Heiner Kallweit
2019-07-01 21:13 ` Al Viro
2019-07-01 21:46 ` Al Viro
2019-07-01 21:51 ` Al Viro
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=20190701195621.GC17978@ZenIV.linux.org.uk \
--to=viro@zeniv.linux.org.uk \
--cc=davem@davemloft.net \
--cc=hkallweit1@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=nic_swsd@realtek.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.