Re: [rfc patch script] treewide conversion of __section(foo) to section("foo");

From: Nick Desaulniers
Date: Thu Sep 12 2019 - 18:47:05 EST


On Sun, Sep 8, 2019 at 9:21 PM Joe Perches <joe@xxxxxxxxxxx> wrote:
<snip>
> So running the script:
>
> $ perl section.pl
>
> produces a commit
> ---
> From 04e52f34fd4ee7008ea5bf0d8896bf8d1fdf9f3f Mon Sep 17 00:00:00 2001
> Message-Id: <04e52f34fd4ee7008ea5bf0d8896bf8d1fdf9f3f.1568001863.git.joe@xxxxxxxxxxx>
> From: Joe Perches <joe@xxxxxxxxxxx>
> Date: Sun, 8 Sep 2019 20:53:41 -0700
> Subject: [PATCH] treewide: Convert macro and uses of __section(foo) to
> __section("foo")
>
> Use a more generic form for __section that requires quotes to avoid
> complications with clang and gcc differences.
>
> Remove the quote operator # from compiler_attributes.h __section macro.
>
> Convert all unquoted __section(foo) uses to quoted __section("foo").
> Also convert __attribute__((section("foo"))) uses to __section("foo")
> even if the __attribute__ has multiple list entry forms.
>
> Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
> ---
> arch/arc/include/asm/linkage.h | 8 +++---
> arch/arc/include/asm/mach_desc.h | 2 +-
> arch/arc/plat-hsdk/platform.c | 2 +-
> arch/arm/include/asm/cache.h | 2 +-
> arch/arm/include/asm/cpuidle.h | 2 +-
> arch/arm/include/asm/idmap.h | 2 +-
> arch/arm/include/asm/kvm_hyp.h | 2 +-
> arch/arm/include/asm/mach/arch.h | 4 +--
> arch/arm/include/asm/setup.h | 2 +-
> arch/arm/include/asm/smp.h | 2 +-
> arch/arm/include/asm/tcm.h | 8 +++---
> arch/arm/kernel/cpuidle.c | 2 +-
> arch/arm/kernel/devtree.c | 2 +-
> arch/arm64/include/asm/cache.h | 2 +-
> arch/arm64/include/asm/exception.h | 2 +-
> arch/arm64/include/asm/kvm_hyp.h | 2 +-
> arch/arm64/kernel/efi.c | 2 +-
> arch/arm64/kernel/smp_spin_table.c | 2 +-
> arch/ia64/include/asm/cache.h | 2 +-
> arch/microblaze/kernel/setup.c | 2 +-
> arch/mips/include/asm/cache.h | 2 +-
> arch/mips/include/asm/mach-pmcs-msp71xx/msp_pci.h | 4 +--
> arch/mips/include/asm/machine.h | 2 +-
> arch/mips/include/asm/mips_machine.h | 2 +-
> arch/mips/kernel/setup.c | 2 +-
> arch/mips/mm/init.c | 2 +-
> arch/parisc/include/asm/cache.h | 2 +-
> arch/parisc/include/asm/ldcw.h | 2 +-
> arch/parisc/kernel/ftrace.c | 2 +-
> arch/parisc/mm/init.c | 6 ++--
> arch/powerpc/boot/main.c | 2 +-
> arch/powerpc/boot/ps3.c | 2 +-
> arch/powerpc/include/asm/cache.h | 2 +-
> arch/powerpc/include/asm/machdep.h | 2 +-
> arch/powerpc/kernel/btext.c | 2 +-
> arch/powerpc/kernel/prom_init.c | 2 +-
> arch/powerpc/kvm/book3s_64_vio_hv.c | 2 +-
> arch/s390/boot/compressed/decompressor.c | 2 +-
> arch/s390/boot/ipl_parm.c | 4 +--
> arch/s390/boot/startup.c | 2 +-
> arch/s390/include/asm/cache.h | 2 +-
> arch/s390/include/asm/sections.h | 4 +--
> arch/s390/kernel/setup.c | 2 +-
> arch/s390/mm/init.c | 2 +-
> arch/sh/boards/of-generic.c | 2 +-
> arch/sh/include/asm/cache.h | 2 +-
> arch/sh/include/asm/machvec.h | 2 +-
> arch/sh/include/asm/smp.h | 2 +-
> arch/sparc/include/asm/cache.h | 2 +-
> arch/sparc/kernel/btext.c | 2 +-
> arch/um/include/shared/init.h | 22 +++++++--------
> arch/um/kernel/skas/clone.c | 2 +-
> arch/um/kernel/um_arch.c | 2 +-
> arch/x86/boot/compressed/pgtable_64.c | 2 +-
> arch/x86/boot/tty.c | 8 +++---
> arch/x86/boot/video.h | 2 +-
> arch/x86/include/asm/apic.h | 4 +--
> arch/x86/include/asm/cache.h | 2 +-
> arch/x86/include/asm/intel-mid.h | 2 +-
> arch/x86/include/asm/iommu_table.h | 2 +-
> arch/x86/include/asm/irqflags.h | 2 +-
> arch/x86/include/asm/mem_encrypt.h | 2 +-
> arch/x86/include/asm/setup.h | 2 +-
> arch/x86/kernel/cpu/cpu.h | 2 +-
> arch/x86/kernel/head64.c | 2 +-
> arch/x86/mm/mem_encrypt.c | 4 +--
> arch/x86/mm/mem_encrypt_identity.c | 2 +-
> arch/x86/platform/pvh/enlighten.c | 4 +--
> arch/x86/purgatory/purgatory.c | 10 +++----
> arch/x86/um/stub_segv.c | 2 +-
> arch/x86/xen/enlighten.c | 2 +-
> arch/x86/xen/enlighten_pvh.c | 2 +-
> arch/xtensa/kernel/setup.c | 2 +-
> drivers/clk/clk.c | 2 +-
> drivers/clocksource/timer-probe.c | 2 +-
> drivers/firmware/efi/libstub/efi-stub-helper.c | 6 ++--
> drivers/irqchip/irqchip.c | 2 +-
> drivers/of/of_reserved_mem.c | 2 +-
> drivers/s390/char/sclp_early_core.c | 4 +--
> drivers/thermal/thermal_core.h | 2 +-
> include/asm-generic/bug.h | 6 ++--
> include/asm-generic/error-injection.h | 2 +-
> include/asm-generic/kprobes.h | 4 +--
> include/linux/acpi.h | 2 +-
> include/linux/cache.h | 4 +--
> include/linux/compiler.h | 8 +++---
> include/linux/compiler_attributes.h | 12 +-------
> include/linux/cpu.h | 2 +-
> include/linux/dynamic_debug.h | 2 +-
> include/linux/export.h | 4 +--
> include/linux/firmware.h | 2 +-
> include/linux/frame.h | 2 +-
> include/linux/init.h | 34 +++++++++++------------
> include/linux/init_task.h | 4 +--
> include/linux/interrupt.h | 4 +--
> include/linux/kernel.h | 6 ++--
> include/linux/linkage.h | 4 +--
> include/linux/lsm_hooks.h | 4 +--
> include/linux/module.h | 2 +-
> include/linux/moduleparam.h | 4 +--
> include/linux/mtd/xip.h | 2 +-
> include/linux/of.h | 2 +-
> include/linux/percpu-defs.h | 2 +-
> include/linux/printk.h | 4 +--
> include/linux/rcupdate.h | 2 +-
> include/linux/sched/debug.h | 2 +-
> include/linux/serial_core.h | 2 +-
> include/linux/spinlock.h | 2 +-
> include/linux/srcutree.h | 2 +-
> include/linux/syscalls.h | 6 ++--
> include/linux/trace_events.h | 2 +-
> include/linux/tracepoint.h | 8 +++---
> include/trace/bpf_probe.h | 2 +-
> include/trace/trace_events.h | 10 +++----
> kernel/kallsyms.c | 4 +--
> kernel/trace/trace_export.c | 2 +-

Diff stats look good based on what I could find myself with grep. I
also manually eyeballed each hunk (#eyestrain). When you send, please
include my:
Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
This patchset shows the need to follow up with conversions for some of
the other attributes like __used, __aligned, and __weak.
Good job handling some of the trickier cases.
One case I'm not sure is perfect (or if it even matters TBH) is when
there's a trailing backslash for a macro definition that continues
onto the next line, if those are all still tabbed out correctly. But
the meat of this change is what's important and looks correct to. If
you want to email me just the patch file (so I don't have to
copy+pasta from an email), I'd be happy to apply it and compile+boot
test a few more arch's than x86.

> 116 files changed, 193 insertions(+), 203 deletions(-)
--
Thanks,
~Nick Desaulniers