mm: Mark anonymous struct field of 'struct vm_fault' as 'const'
authorWill Deacon <will@kernel.org>
Thu, 14 Jan 2021 15:44:09 +0000 (15:44 +0000)
committerWill Deacon <will@kernel.org>
Thu, 21 Jan 2021 12:51:03 +0000 (12:51 +0000)
The fields of this struct are only ever read after being initialised, so
mark it 'const' before somebody tries to modify it again. GCC will then
complain (with an error) about modification of these fields after they
have been initialised, although LLVM currently allows them without even
a warning:

https://bugs.llvm.org/show_bug.cgi?id=48755

Hopefully, future versions of LLVM will emit a warning.

Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Will Deacon <will@kernel.org>
include/linux/mm.h

index e0f056753bef1375dd6332a228cf9f140835004c..7ff3d9817d388e33d91be4f06c42580b59afb57c 100644 (file)
@@ -514,7 +514,7 @@ static inline bool fault_flag_allow_retry_first(unsigned int flags)
  * pgoff should be used in favour of virtual_address, if possible.
  */
 struct vm_fault {
-       struct {
+       const struct {
                struct vm_area_struct *vma;     /* Target VMA */
                gfp_t gfp_mask;                 /* gfp mask to be used for allocations */
                pgoff_t pgoff;                  /* Logical page offset based on vma */