[PATCH 00/13] Kconfig symbol clean-up on ./arch/arm{64}

Lukas Bulwahn lukas.bulwahn at gmail.com
Fri Oct 29 01:19:25 AEDT 2021


Dear arm maintainers,

The script ./scripts/checkkconfigsymbols.py warns on invalid references to
Kconfig symbols (often: minor typos, name confusions or outdated references).

This is a patch series addressing the issues reported by
./scripts/checkkconfigsymbols.py in the ./arch/arm{64}/ directories, quickly
filtered down with:

  ./scripts/checkkconfigsymbols.py | grep "arch/arm" -B 1 -A 2

without considering kernel configs, i.e., after removing arch/arm{64}/configs
in the working tree. It addresses some issues I considered to be "true positives";
so, issues that should be addressed and cleaned up.

The patches on updating the comments might arguably be considered of lower value
by itself, but as the other patches show, checkkconfigsymbols does detect some
relevant issues in the kernel tree otherwise being unnoticed.
So, it might be worth to clean up the kernel tree to have checkkconfigsymbols
produce a rather short list of issues and then continuously follow and check
what checkkconfigsymbols reports.

Some work from checkkconfigsymbols on arch/arm/ is deferred; the other remaining
issues that checkkconfigsymbols reports are (as far as I understand it now)
"false positives", i.e., the tool misinterprets the actual content) or
"intentional", e.g., they refer to historic configs for the purpose of
documentation (e.g., in changelogs) or are in various kernel configs that are
not continuously updated to match the current set of kernel configs. You can
see below a grouped list of remaining reports.

Each patch in this series can be discussed and applied individually if needed.
They are sent in one patch series, as they all orginate from the investigation
guided by the same tool and hence share similar topics and resolutions.

Please pick this series of minor clean-up patches on ./arch/arm{64}/.
It applies cleanly on next-20211027.

Best regards,

Lukas


Remaining reports from ./scripts/checkkconfigsymbols.py pointing to files in
./arch/arm{64}/ (excluding configs), grouped by the rationale why it is not
addressed in this patch series:


- Reference in historic comment:

  ARM_NR_BANKS
  Referencing files: arch/arm/mach-exynos/exynos.c

  CPU
  Referencing files: arch/arm/lib/backtrace.S, arch/arm/lib/csumpartialcopyuser.S,
    arch/arm/mach-rpc/ecard-loader.S, arch/arm/mach-rpc/io-acorn.S, arch/arm/nwfpe/fpmodule.h

  CPU_ARM92{0,2,5,6}_CPU_IDLE
  Referencing files: arch/arm/mm/proc-arm92{0,2,5,6}.S

  KVM_INDIRECT_VECTORS
  Referencing files: arch/arm64/kvm/hyp/nvhe/host.S


- Use of CONFIG_* environment variable beyond the definition in Kconfig scripts

  AS_DMB_ISHLD
  Referencing files: arch/arm64/include/asm/vdso/compat_barrier.h, arch/arm64/kernel/vdso32/Makefile

  CC_HAS_K_CONSTRAINT
  Referencing files: arch/arm64/Makefile, arch/arm64/include/asm/atomic_ll_sc.h

  SHELL
  Ignore CONFIG_SHELL. Default variable in Kbuild build system.


- Parsing Mistake (Incomplete parsing heuristics) by checkkconfigsymbols.py:

  ASC1, ASC2, SBC, UART
  Referencing files: arch/arm/Kconfig.debug


- Future work to send clean-up patches:

  IRDA{_MODULE}
  Referencing files: arch/arm/mach-pxa/balloon3.c, arch/arm/mach-pxa/palm27x.c,
    arch/arm/mach-pxa/palm27x.h, arch/arm/mach-pxa/palmtc.c, include/linux/atalk.h,
    include/linux/netdevice.h

  PXA_FICP{_MODULE}
  Referencing files: arch/arm/mach-pxa/spitz.c

  DEBUG_LL_SER3
  Referencing files: arch/arm/boot/compressed/head.S

  already discussed in 2014: https://lore.kernel.org/all/1400055127.31197.1.camel@x220/


Lukas Bulwahn (13):
  arm: debug: remove obsolete debug code for DEBUG_ZTE_ZX
  arm: debug: reuse the config DEBUG_OMAP2UART{1,2} for OMAP{3,4,5}
  arm: Kconfig.debug: drop reference to removed ARCH_MSM
  arm: drop an obsolete ifdef with the removed config PCI_HOST_ITE8152
  arm: davinci: remove reference to obsolete BLK_DEV_PALMCHIP_BK3710
  arm: ixp4xx: remove dead configs CPU_IXP43X and CPU_IXP46X
  arm: imx: remove dead left-over from i.MX{27,31,35} removal
  arm: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART
  arm: milbeaut: remove select of non-existing PINCTRL_MILBEAUT
  arm: nomadik: drop selecting obsolete CLKSRC_NOMADIK_MTU_SCHED_CLOCK
  arm: npcm: drop selecting non-existing ARM_ERRATA_794072
  arm: socfpga: always select PL310_ERRATA_753970
  arm: pgtable: refer to intended CONFIG_ARM_LPAE in comment

 arch/arm/Kconfig.debug                    | 28 ++++++++++-------------
 arch/arm/include/debug/imx-uart.h         | 18 +++++++--------
 arch/arm/include/debug/pl01x.S            |  7 ------
 arch/arm/kernel/bios32.c                  |  2 --
 arch/arm/mach-davinci/board-dm644x-evm.c  |  3 +--
 arch/arm/mach-davinci/board-dm646x-evm.c  |  3 +--
 arch/arm/mach-davinci/board-neuros-osd2.c |  3 +--
 arch/arm/mach-imx/Kconfig                 | 12 ----------
 arch/arm/mach-imx/Makefile                |  2 --
 arch/arm/mach-ixp4xx/Kconfig              | 13 -----------
 arch/arm/mach-milbeaut/Kconfig            |  1 -
 arch/arm/mach-nomadik/Kconfig             |  1 -
 arch/arm/mach-npcm/Kconfig                |  1 -
 arch/arm/mach-socfpga/Kconfig             |  2 +-
 arch/arm/mm/pgd.c                         |  2 +-
 15 files changed, 26 insertions(+), 72 deletions(-)

-- 
2.26.2



More information about the openbmc mailing list