On 9/6/21 6:12 PM, Linus Torvalds wrote:
On Mon, Sep 6, 2021 at 4:49 PM Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
but I'm not seeing why that one happens on sparc64, but not on arm64
or x86-64. There doesn't seem to be anything architecture-specific
anywhere in that area.
Not really. That is because de->di_fname is always 16 bytes but size
can be 48 if the node is really a link. The use of de is overloaded
in that case; de is struct qnx4_inode_entry (where di_fname is 16 bytes)
but the actual data is struct qnx4_link_info where the name is 48 bytes
long. A possible fix (compile tested only) is below.
I think the warning/error is only reported with gcc 11.x. Do you possibly
use an older compiler for x86/arm64 ?
No. Literally the same exact version. All of them are
gcc version 11.2.1 20210728
I suspect it's something about the config - a sparc64 allmodconfig
presumably doesn't end up having some of the things x86-64 has enabled
(because of different core config parameters), and then optimizes
differently as a result and shows the issue that way.
Or something. <wild handwaving>
Looks like Arnd stumbled into the qnx4 problem before: