Re: [RFC PATCH 4/8] mm: Separate fault info out of 'struct vm_fault'
From: Will Deacon <will@kernel.org>
Date: 2021-01-15 09:24:31
Also in:
linux-arm-kernel, lkml
From: Will Deacon <will@kernel.org>
Date: 2021-01-15 09:24:31
Also in:
linux-arm-kernel, lkml
On Thu, Jan 14, 2021 at 01:11:12PM -0800, Linus Torvalds wrote:
On Thu, Jan 14, 2021 at 11:41 AM Will Deacon [off-list ref] wrote:quoted
Sure enough, an arm64 defconfig builds perfectly alright with that change, but it really shouldn't. I'm using clang 11.0.5, so I had another go with GCC 9.2.1 and bang:Ok, looks like a clang bug, but a reasonably benign one. As long as we have sufficient coverage with gcc, we'll get error reporting in a timely manner for any new incorrect assignments, so I think we can do that constant anonymous struct even if it does mean that clang might let some bad cases through (I personally use gcc for build testing, and then clang for building my boot kernels, so I'd catch anything x86-64 allmodconfig in my build tests). And keeping it unnamed it would avoid a lot of noisy churn..
Hmm. The feedback on the clang bug suggests that GCC is the one in the wrong here (although the argument is based on C11 and I haven't trawled through the standards to see how this has evolved): https://bugs.llvm.org/show_bug.cgi?id=48755#c1 There is at least some sympathy to generating a warning, so that might be good enough. Otherwise, I suppose we can explicitly mark the fields as 'const' but I won't jump to that immediately. Will