WSL2-Linux-Kernel/arch/mips/mm
Nathan Chancellor e7403632c0 MIPS: tlbex: Explicitly compare _PAGE_NO_EXEC against 0
[ Upstream commit 74de14fe05 ]

When CONFIG_XPA is enabled, Clang warns:

  arch/mips/mm/tlbex.c:629:24: error: converting the result of '<<' to a boolean; did you mean '(1 << _PAGE_NO_EXEC_SHIFT) != 0'? [-Werror,-Wint-in-bool-context]
          if (cpu_has_rixi && !!_PAGE_NO_EXEC) {
                              ^
  arch/mips/include/asm/pgtable-bits.h:174:28: note: expanded from macro '_PAGE_NO_EXEC'
  # define _PAGE_NO_EXEC          (1 << _PAGE_NO_EXEC_SHIFT)
                                     ^
  arch/mips/mm/tlbex.c:2568:24: error: converting the result of '<<' to a boolean; did you mean '(1 << _PAGE_NO_EXEC_SHIFT) != 0'? [-Werror,-Wint-in-bool-context]
          if (!cpu_has_rixi || !_PAGE_NO_EXEC) {
                                ^
  arch/mips/include/asm/pgtable-bits.h:174:28: note: expanded from macro '_PAGE_NO_EXEC'
  # define _PAGE_NO_EXEC          (1 << _PAGE_NO_EXEC_SHIFT)
                                     ^
  2 errors generated.

_PAGE_NO_EXEC can be '0' or '1 << _PAGE_NO_EXEC_SHIFT' depending on the
build and runtime configuration, which is what the negation operators
are trying to convey. To silence the warning, explicitly compare against
0 so the result of the '<<' operator is not implicitly converted to a
boolean.

According to its documentation, GCC enables -Wint-in-bool-context with
-Wall but this warning is not visible when building the same
configuration with GCC. It appears GCC only warns when compiling C++,
not C, although the documentation makes no note of this:
https://godbolt.org/z/x39q3brxf

Reported-by: Sudip Mukherjee (Codethink) <sudipm.mukherjee@gmail.com>
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-08-25 11:40:46 +02:00
..
Makefile MIPS: uaccess: Added __get/__put_kernel_nofault 2021-04-06 14:36:56 +02:00
c-octeon.c mips: clean up kernel-doc in mm/c-octeon.c 2021-07-28 11:22:21 +02:00
c-r3k.c mm: pgtable: add shortcuts for accessing kernel PMD and PTE 2020-06-09 09:39:13 -07:00
c-r4k.c driver core: lift dma_default_coherent into common code 2021-02-13 09:51:45 +01:00
c-tx39.c mm: pgtable: add shortcuts for accessing kernel PMD and PTE 2020-06-09 09:39:13 -07:00
cache.c Revert "MIPS: make userspace mapping young by default" 2021-06-05 08:58:11 -07:00
cerr-sb1.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
cex-gen.S
cex-oct.S
cex-sb1.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
context.c MIPS: Export mm switching functions used by KVM 2019-02-05 11:44:44 -08:00
dma-noncoherent.c MIPS: mm: XBurst CPU requires sync after DMA 2021-06-01 11:44:46 +02:00
extable.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
fault.c MIPS: mm: abort uaccess retries upon fatal signal 2021-01-22 11:34:19 +01:00
highmem.c mips/mm/highmem: Switch to generic kmap atomic 2020-11-06 23:14:56 +01:00
hugetlbpage.c hugetlb: pass vma into huge_pte_alloc() and huge_pmd_share() 2021-05-05 11:27:20 -07:00
init.c mm: replace CONFIG_NEED_MULTIPLE_NODES with CONFIG_NUMA 2021-06-29 10:53:55 -07:00
ioremap.c MIPS: use ioremap_page_range 2020-04-19 16:13:18 +02:00
ioremap64.c MIPS: move ioremap_prot und iounmap out of line 2020-04-19 16:12:31 +02:00
maccess.c MIPS: uaccess: Added __get/__put_kernel_nofault 2021-04-06 14:36:56 +02:00
mmap.c mips: use generic mmap top-down layout and brk randomization 2019-09-24 15:54:12 -07:00
page-funcs.S MIPS: Export {copy, clear}_page functions alongside their definitions 2017-01-03 16:48:39 +01:00
page.c MIPS: Convert R4600_V2_HIT_CACHEOP into a config option 2020-09-07 22:23:48 +02:00
pgtable-32.c MIPS: do not call flush_tlb_all when setting pmd entry 2021-02-24 13:38:32 -08:00
pgtable-64.c MIPS: do not call flush_tlb_all when setting pmd entry 2021-02-24 13:38:32 -08:00
pgtable.c MIPS: Move pgd_alloc() out of header 2017-02-02 15:06:26 +00:00
physaddr.c MIPS: Fixed __debug_virt_addr_valid() 2022-08-17 14:24:08 +02:00
sc-debugfs.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
sc-ip22.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
sc-mips.c mips: fix Section mismatch in reference 2020-12-14 16:39:42 +01:00
sc-r5k.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
sc-rm7k.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tlb-funcs.S MIPS: Consistently declare TLB functions 2018-08-10 17:27:53 -07:00
tlb-r3k.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
tlb-r4k.c MIPS: export has_transparent_hugepage() for modules 2020-10-27 12:44:34 +01:00
tlbex-fault.S MIPS: Add DWARF unwinding to assembly 2017-09-06 11:01:52 +02:00
tlbex.c MIPS: tlbex: Explicitly compare _PAGE_NO_EXEC against 0 2022-08-25 11:40:46 +02:00
uasm-micromips.c mips: bpf: implement jitting of BPF_ALU | BPF_ARSH | BPF_X 2018-12-07 13:30:48 -08:00
uasm-mips.c MIPS: uasm: Add div, mul and sel instructions for mipsr6 2019-03-19 15:26:06 -07:00
uasm.c MIPS: Get rid of CAVIUM_OCTEON_DCACHE_PREFETCH_WAR 2020-09-07 22:25:16 +02:00