LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* Re: [RFC PATCH v3 5/8] mm: page_isolation: check specified range for unmovable pages during isolation.
From: David Hildenbrand @ 2022-01-14 13:38 UTC (permalink / raw)
  To: Zi Yan, linux-mm
  Cc: Mel Gorman, Robin Murphy, linux-kernel, iommu, Eric Ren,
	virtualization, linuxppc-dev, Christoph Hellwig, Vlastimil Babka,
	Marek Szyprowski
In-Reply-To: <20220105214756.91065-6-zi.yan@sent.com>

On 05.01.22 22:47, Zi Yan wrote:
> From: Zi Yan <ziy@nvidia.com>
> 
> Enable set_migratetype_isolate() to check specified sub-range for
> unmovable pages during isolation. Page isolation is done
> at max(MAX_ORDER_NR_PAEGS, pageblock_nr_pages) granularity, but not all
> pages within that granularity are intended to be isolated. For example,
> alloc_contig_range(), which uses page isolation, allows ranges without
> alignment. This commit makes unmovable page check only look for
> interesting pages, so that page isolation can succeed for any
> non-overlapping ranges.

Are you handling if we start checking in the middle of a compound page
and actually have to lookup the head to figure out if movable or not?

> 
> has_unmovable_pages() is moved to mm/page_isolation.c since it is only
> used by page isolation.

Please move that into a separate patch upfront, makes this patch much
easier to review.

-- 
Thanks,

David / dhildenb


^ permalink raw reply

* [GIT PULL] Please pull powerpc/linux.git powerpc-5.17-1 tag
From: Michael Ellerman @ 2022-01-14 11:58 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: sachinp, cascardo, guoren, aik, wangborong, wangxiang, amodra,
	jlu.hpw, keescook, robh, anders.roxell, chi.minghao, peterz,
	yang.guang5, nathanl, ravi.bangoria, ajd, kjain, npiggin,
	Julia.Lawall, christophe.jaillet, clg, Arnaldo Carvalho de Melo,
	hbathini, dja, atrajeev, nick.child, gregkh, rdunlap,
	linux-kernel, ammarfaizi2, seanjc, oohall, linuxppc-dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi Linus,

Please pull powerpc updates for 5.17.

Some of the KVM changes have also been merged into the KVM tree via a topic branch, so you
may receive them that way.

Notable out of area changes:
  include/uapi/linux/perf_event.h  # cb1c4aba055f perf: Add new macros for mem_hops field
  drivers/misc/lkdtm/Makefile	   # c28573744b74 powerpc/64s: Make hash MMU support configurable
  drivers/misc/lkdtm/core.c	   # 387e220a2e5e powerpc/64s: Move hash MMU support code under CONFIG_PPC_64S_HASH_MMU
  include/linux/cuda.h		   # 7da1d1ddd1f0 cuda/pmu: Make find_via_cuda/pmu init functions
  include/linux/pmu.h		   # 7da1d1ddd1f0 cuda/pmu: Make find_via_cuda/pmu init functions

cheers

The following changes since commit 136057256686de39cc3a07c2e39ef6bc43003ff6:

  Linux 5.16-rc2 (2021-11-21 13:47:39 -0800)

are available in the git repository at:

  https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git tags/powerpc-5.17-1

for you to fetch changes up to f1aa0e47c29268776205698f2453dc07fab49855:

  powerpc/xmon: Dump XIVE information for online-only processors. (2022-01-06 21:47:00 +1100)

- ------------------------------------------------------------------
powerpc updates for 5.17

 - Optimise radix KVM guest entry/exit by 2x on Power9/Power10.

 - Allow firmware to tell us whether to disable the entry and uaccess flushes on Power10
   or later CPUs.

 - Add BPF_PROBE_MEM support for 32 and 64-bit BPF jits.

 - Several fixes and improvements to our hard lockup watchdog.

 - Activate HAVE_DYNAMIC_FTRACE_WITH_REGS on 32-bit.

 - Allow building the 64-bit Book3S kernel without hash MMU support, ie. Radix only.

 - Add KUAP (SMAP) support for 40x, 44x, 8xx, Book3E (64-bit).

 - Add new encodings for perf_mem_data_src.mem_hops field, and use them on Power10.

 - A series of small performance improvements to 64-bit interrupt entry.

 - Several commits fixing issues when building with the clang integrated assembler.

 - Many other small features and fixes.

Thanks to: Alan Modra, Alexey Kardashevskiy, Ammar Faizi, Anders Roxell, Arnd Bergmann,
Athira Rajeev, Cédric Le Goater, Christophe JAILLET, Christophe Leroy, Christoph Hellwig,
Daniel Axtens, David Yang, Erhard Furtner, Fabiano Rosas, Greg Kroah-Hartman, Guo Ren,
Hari Bathini, Jason Wang, Joel Stanley, Julia Lawall, Kajol Jain, Kees Cook, Laurent
Dufour, Madhavan Srinivasan, Mark Brown, Minghao Chi, Nageswara R Sastry, Naresh Kamboju,
Nathan Chancellor, Nathan Lynch, Nicholas Piggin, Nick Child, Oliver O'Halloran, Peiwei
Hu, Randy Dunlap, Ravi Bangoria, Rob Herring, Russell Currey, Sachin Sant, Sean
Christopherson, Segher Boessenkool, Thadeu Lima de Souza Cascardo, Tyrel Datwyler, Xiang
wangx, Yang Guang.

- ------------------------------------------------------------------
Alan Modra (1):
      powerpc/toc: Future proof kernel toc

Alexey Kardashevskiy (5):
      KVM: PPC: Book3S: Suppress warnings when allocating too big memory slots
      KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
      powerpc/64/asm: Inline BRANCH_TO_C000
      powerpc/mm: Switch obsolete dssall to .long
      powerpc/mm/book3s64/hash: Switch pre 2.06 tlbiel to .long

Ammar Faizi (1):
      powerpc/xive: Add missing null check after calling kmalloc

Anders Roxell (1):
      powerpc/cell: Fix clang -Wimplicit-fallthrough warning

Athira Rajeev (1):
      powerpc/perf: Fix PMU callbacks to clear pending PMI before resetting an overflown PMC

Christophe JAILLET (2):
      powerpc/mpic: Use bitmap_zalloc() when applicable
      powerpc/floppy: Remove usage of the deprecated "pci-dma-compat.h" API

Christophe Leroy (54):
      powerpc/code-patching: Improve verification of patchability
      powerpc/ftrace: No need to read LR from stack in _mcount()
      powerpc/ftrace: Add module_trampoline_target() for PPC32
      powerpc/ftrace: Activate HAVE_DYNAMIC_FTRACE_WITH_REGS on PPC32
      powerpc/ptdump: Fix display a BAT's size unit
      powerpc: Don't bother about .data..Lubsan sections
      powerpc/bitops: Use immediate operand when possible
      powerpc/atomics: Use immediate operand when possible
      powerpc/atomics: Remove atomic_inc()/atomic_dec() and friends
      powerpc/modules: Don't WARN on first module allocation attempt
      powerpc/powermac: Add missing lockdep_register_key()
      powerpc/32s: Fix shift-out-of-bounds in KASAN init
      powerpc/40x: Map 32Mbytes of memory at startup
      Revert "powerpc: Inline setup_kup()"
      powerpc/8xx: Activate KUEP at all time
      powerpc/44x: Activate KUEP at all time
      powerpc/book3e: Activate KUEP at all time
      powerpc/32s: Remove capability to disable KUEP at boottime
      powerpc/32s: Do kuep_lock() and kuep_unlock() in assembly
      powerpc/32s: Save content of sr0 to avoid 'mfsr'
      powerpc/kuep: Remove 'nosmep' boot time parameter except for book3s/64
      powerpc/kuap: Add a generic intermediate layer
      powerpc/kuap: Check KUAP activation in generic functions
      powerpc/kuap: Remove __kuap_assert_locked()
      powerpc/kuap: Add kuap_lock()
      powerpc/nohash: Move setup_kuap out of 8xx.c
      powerpc/config: Add CONFIG_BOOKE_OR_40x
      powerpc/kuap: Prepare for supporting KUAP on BOOK3E/64
      powerpc/kuap: Make PPC_KUAP_DEBUG depend on PPC_KUAP only
      powerpc: Add KUAP support for BOOKE and 40x
      powerpc/kuap: Wire-up KUAP on 44x
      powerpc/kuap: Wire-up KUAP on 40x
      powerpc/kuap: Wire-up KUAP on 85xx in 32 bits mode.
      powerpc/kuap: Wire-up KUAP on book3e/64
      powerpc: Remove CONFIG_PPC_HAVE_KUAP and CONFIG_PPC_HAVE_KUEP
      powerpc/32s: Allocate one 256k IBAT instead of two consecutives 128k IBATs
      powerpc/inst: Refactor ___get_user_instr()
      powerpc/inst: Define ppc_inst_t
      powerpc/inst: Define ppc_inst_t as u32 on PPC32
      powerpc/inst: Move ppc_inst_t definition in asm/reg.h
      powerpc/inst: Optimise copy_inst_from_kernel_nofault()
      powerpc/powermac: Add additional missing lockdep_register_key()
      powerpc/code-patching: Remove pr_debug()/pr_devel() messages and fix check()
      powerpc/code-patching: Remove init_mem_is_free
      powerpc/code-patching: Fix error handling in do_patch_instruction()
      powerpc/code-patching: Fix unmap_patch_area() error handling
      powerpc/code-patching: Reorganise do_patch_instruction() to ease error handling
      powerpc/code-patching: Fix patch_branch() return on out-of-range failure
      powerpc/code-patching: Use test_trampoline for prefixed patch test
      powerpc/code-patching: Move patch_exception() outside code-patching.c
      powerpc/code-patching: Move instr_is_branch_{i/b}form() in code-patching.h
      powerpc/code-patching: Move code patching selftests in its own file
      powerpc/code-patching: Replace patch_instruction() by ppc_inst_write() in selftests
      powerpc/32: Fix boot failure with GCC latent entropy plugin

Cédric Le Goater (11):
      powerpc/xive: Replace pr_devel() by pr_debug() to ease debug
      powerpc/xive: Introduce an helper to print out interrupt characteristics
      powerpc/xive: Activate StoreEOI on P10
      powerpc/xive: Introduce xive_core_debugfs_create()
      powerpc/xive: Change the debugfs file 'xive' into a directory
      powerpc/xive: Rename the 'cpus' debugfs file to 'ipis'
      powerpc/xive: Add a debugfs file to dump EQs
      powerpc/xive: Add a debugfs toggle for StoreEOI
      powerpc/xive: Add a kernel parameter for StoreEOI
      powerpc/xive: Add a debugfs toggle for save-restore
      powerpc/xive: Fix compile when !CONFIG_PPC_POWERNV.

Daniel Axtens (3):
      powerpc/eeh: Small refactor of eeh_handle_normal_event()
      powerpc: check for support for -Wa,-m{power4,any}
      powerpc/64/asm: Do not reassign labels

Greg Kroah-Hartman (2):
      powerpc/cacheinfo: use default_groups in kobj_type
      powerpc/opal: use default_groups in kobj_type

Guo Ren (1):
      powerpc/sched: Remove unused TASK_SIZE_OF

Hari Bathini (6):
      bpf powerpc: refactor JIT compiler code
      powerpc/ppc-opcode: introduce PPC_RAW_BRANCH() macro
      bpf ppc32: Add BPF_PROBE_MEM support for JIT
      bpf ppc32: Access only if addr is kernel address
      powerpc: handle kdump appropriately with crash_kexec_post_notifiers option
      powerpc/fadump: Fix inaccurate CPU state info in vmcore generated with panic

Jason Wang (1):
      powerpc/tsi108: make EXPORT_SYMBOL follow its function immediately

Julia Lawall (4):
      powerpc/6xx: add missing of_node_put
      powerpc/powernv: add missing of_node_put
      powerpc/cell: add missing of_node_put
      powerpc/btext: add missing of_node_put

Kajol Jain (3):
      perf: Add new macros for mem_hops field
      powerpc/perf: Add encodings to represent data based on newer composite PERF_MEM_LVLNUM* fields
      powerpc/perf: Add data source encodings for power10 platform

Kees Cook (1):
      powerpc/signal32: Use struct_group() to zero spe regs

Michael Ellerman (14):
      Merge branch 'topic/ppc-kvm' into next
      powerpc/microwatt: Make microwatt_get_random_darn() static
      Revert "powerpc/code-patching: Improve verification of patchability"
      powerpc/85xx: Fix no previous prototype warning for mpc85xx_setup_pmc()
      powerpc/85xx: Make mpc85xx_smp_kexec_cpu_down() static
      powerpc/85xx: Make c293_pcie_pic_init() static
      powerpc/mm: Move tlbcam_sz() and make it static
      powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
      powerpc: Mark probe_machine() __init and static
      Merge branch 'topic/ppc-kvm' into next
      selftests/powerpc: Add a test of sigreturning to the kernel
      powerpc/64s: Mask NIP before checking against SRR0
      powerpc/64s: Use EMIT_WARN_ENTRY for SRR debug warnings
      selftests/powerpc: Add a test of sigreturning to an unaligned address

Minghao Chi (1):
      ocxl: remove redundant rc variable

Nathan Lynch (4):
      powerpc/rtas: kernel-doc fixes
      powerpc/pseries: delete scanlog
      powerpc/rtas: rtas_busy_delay() improvements
      powerpc/rtas: rtas_busy_delay_time() kernel-doc

Nicholas Piggin (92):
      powerpc/64s: Remove WORT SPR from POWER9/10 (take 2)
      powerpc/64s: guard optional TIDR SPR with CPU ftr test
      KMV: PPC: Book3S HV P9: Use set_dec to set decrementer to host
      KVM: PPC: Book3S HV P9: Use host timer accounting to avoid decrementer read
      KVM: PPC: Book3S HV P9: Use large decrementer for HDEC
      KVM: PPC: Book3S HV P9: Reduce mftb per guest entry/exit
      powerpc/time: add API for KVM to re-arm the host timer/decrementer
      KVM: PPC: Book3S HV: POWER10 enable HAIL when running radix guests
      powerpc/64s: Keep AMOR SPR a constant ~0 at runtime
      KVM: PPC: Book3S HV: Don't always save PMU for guest capable of nesting
      powerpc/64s: Always set PMU control registers to frozen/disabled when not in use
      powerpc/64s: Implement PMU override command line option
      KVM: PPC: Book3S HV P9: Implement PMU save/restore in C
      KVM: PPC: Book3S HV P9: Factor PMU save/load into context switch functions
      KVM: PPC: Book3S HV P9: Demand fault PMU SPRs when marked not inuse
      KVM: PPC: Book3S HV P9: Factor out yield_count increment
      KVM: PPC: Book3S HV: CTRL SPR does not require read-modify-write
      KVM: PPC: Book3S HV P9: Move SPRG restore to restore_p9_host_os_sprs
      KVM: PPC: Book3S HV P9: Reduce mtmsrd instructions required to save host SPRs
      KVM: PPC: Book3S HV P9: Improve mtmsrd scheduling by delaying MSR[EE] disable
      KVM: PPC: Book3S HV P9: Add kvmppc_stop_thread to match kvmppc_start_thread
      KVM: PPC: Book3S HV: Change dec_expires to be relative to guest timebase
      KVM: PPC: Book3S HV P9: Move TB updates
      KVM: PPC: Book3S HV P9: Optimise timebase reads
      KVM: PPC: Book3S HV P9: Avoid SPR scoreboard stalls
      KVM: PPC: Book3S HV P9: Only execute mtSPR if the value changed
      KVM: PPC: Book3S HV P9: Juggle SPR switching around
      KVM: PPC: Book3S HV P9: Move vcpu register save/restore into functions
      KVM: PPC: Book3S HV P9: Move host OS save/restore functions to built-in
      KVM: PPC: Book3S HV P9: Move nested guest entry into its own function
      KVM: PPC: Book3S HV P9: Move remaining SPR and MSR access into low level entry
      KVM: PPC: Book3S HV P9: Implement TM fastpath for guest entry/exit
      KVM: PPC: Book3S HV P9: Switch PMU to guest as late as possible
      KVM: PPC: Book3S HV P9: Restrict DSISR canary workaround to processors that require it
      KVM: PPC: Book3S HV P9: More SPR speed improvements
      KVM: PPC: Book3S HV P9: Demand fault EBB facility registers
      KVM: PPC: Book3S HV P9: Demand fault TM facility registers
      KVM: PPC: Book3S HV P9: Use Linux SPR save/restore to manage some host SPRs
      KVM: PPC: Book3S HV P9: Comment and fix MMU context switching code
      KVM: PPC: Book3S HV P9: Test dawr_enabled() before saving host DAWR SPRs
      KVM: PPC: Book3S HV P9: Don't restore PSSCR if not needed
      KVM: PPC: Book3S HV: Split P8 from P9 path guest vCPU TLB flushing
      KVM: PPC: Book3S HV P9: Avoid tlbsync sequence on radix guest exit
      KVM: PPC: Book3S HV Nested: Avoid extra mftb() in nested entry
      KVM: PPC: Book3S HV P9: Improve mfmsr performance on entry
      KVM: PPC: Book3S HV P9: Optimise hash guest SLB saving
      KVM: PPC: Book3S HV P9: Avoid changing MSR[RI] in entry and exit
      KVM: PPC: Book3S HV P9: Add unlikely annotation for !mmu_ready
      KVM: PPC: Book3S HV P9: Avoid cpu_in_guest atomics on entry and exit
      KVM: PPC: Book3S HV P9: Remove most of the vcore logic
      KVM: PPC: Book3S HV P9: Tidy kvmppc_create_dtl_entry
      KVM: PPC: Book3S HV P9: Stop using vc->dpdes
      KVM: PPC: Book3S HV P9: Remove subcore HMI handling
      powerpc/powernv: Remove POWER9 PVR version check for entry and uaccess flushes
      powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
      powerpc/watchdog: tighten non-atomic read-modify-write access
      powerpc/watchdog: Avoid holding wd_smp_lock over printk and smp_send_nmi_ipi
      powerpc/watchdog: read TB close to where it is used
      powerpc/watchdog: Fix wd_smp_last_reset_tb reporting
      powerpc: remove cpu_online_cores_map function
      powerpc: select CPUMASK_OFFSTACK if NR_CPUS >= 8192
      powerpc/watchdog: help remote CPUs to flush NMI printk output
      powerpc: flexible GPR range save/restore macros
      powerpc/64s: Get LPID bit width from device tree
      KVM: PPC: Book3S HV P9: Remove unused ri_set local variable
      powerpc: Remove unused FW_FEATURE_NATIVE references
      powerpc: Rename PPC_NATIVE to PPC_HASH_MMU_NATIVE
      powerpc/pseries: Stop selecting PPC_HASH_MMU_NATIVE
      powerpc/64s: Move and rename do_bad_slb_fault as it is not hash specific
      powerpc/pseries: move process table registration away from hash-specific code
      powerpc/pseries: lparcfg don't include slb_size line in radix mode
      powerpc/64s: move THP trace point creation out of hash specific file
      powerpc/64s: Make flush_and_reload_slb a no-op when radix is enabled
      powerpc/64s: move page size definitions from hash specific file
      powerpc/64s: Rename hash_hugetlbpage.c to hugetlbpage.c
      powerpc/64: pcpu setup avoid reading mmu_linear_psize on 64e or radix
      powerpc: make memremap_compat_align 64s-only
      powerpc/64e: remove mmu_linear_psize
      powerpc/64s: Fix radix MMU when MMU_FTR_HPTE_TABLE is clear
      powerpc/64s: Always define arch unmapped area calls
      powerpc/64s: Make hash MMU support configurable
      powerpc/64s: Move hash MMU support code under CONFIG_PPC_64S_HASH_MMU
      powerpc/microwatt: add POWER9_CPU, clear PPC_64S_HASH_MMU
      powerpc/pseries/vas: Don't print an error when VAS is unavailable
      powerpc/64/interrupt: make normal synchronous interrupts enable MSR[EE] if possible
      powerpc/64s/interrupt: handle MSR EE and RI in interrupt entry wrapper
      powerpc/64s/perf: add power_pmu_wants_prompt_pmi to say whether perf wants PMIs to be soft-NMI
      powerpc/64s/interrupt: Don't enable MSR[EE] in irq handlers unless perf is in use
      powerpc/64/interrupt: reduce expensive debug tests
      powerpc/64s/interrupt: avoid saving CFAR in some asynchronous interrupts
      powerpc/pseries: use slab context cpumask allocation in CPU hotplug init
      powerpc/64s/radix: Fix huge vmap false positive

Nick Child (20):
      powerpc/kernel: Add __init attribute to eligible functions
      powerpc/lib: Add __init attribute to eligible functions
      powerpc/mm: Add __init attribute to eligible functions
      powerpc/perf: Add __init attribute to eligible functions
      powerpc/sysdev: Add __init attribute to eligible functions
      powerpc/xmon: Add __init attribute to eligible functions
      powerpc/cell: Add __init attribute to eligible functions
      powerpc/chrp: Add __init attribute to eligible functions
      powerpc/pasemi: Add __init attribute to eligible functions
      powerpc/powermac: Add __init attribute to eligible functions
      powerpc/powernv: Add __init attribute to eligible functions
      powerpc/pseries: Add __init attribute to eligible functions
      powerpc/ps3: Add __init attribute to eligible functions
      powerpc/4xx: Add __init attribute to eligible functions
      powerpc/44x: Add __init attribute to eligible functions
      powerpc/embedded6xx: Add __init attribute to eligible functions
      powerpc/83xx: Add __init attribute to eligible functions
      powerpc/85xx: Add __init attribute to eligible functions
      powerpc/512x: Add __init attribute to eligible functions
      cuda/pmu: Make find_via_cuda/pmu init functions

Oliver O'Halloran (1):
      powerpc/eeh: Use a goto for recovery failures

Peiwei Hu (1):
      powerpc/prom_init: Fix improper check of prom_getprop()

Randy Dunlap (1):
      powerpc/perf: Fix spelling of "its"

Ravi Bangoria (4):
      bpf powerpc: Remove unused SEEN_STACK
      bpf powerpc: Remove extra_pass from bpf_jit_build_body()
      bpf ppc64: Add BPF_PROBE_MEM support for JIT
      bpf ppc64: Access only if addr is kernel address

Rob Herring (1):
      powerpc/dts: Remove "spidev" nodes

Sachin Sant (2):
      selftests/powerpc: skip tests for unavailable mitigations.
      powerpc/xmon: Dump XIVE information for online-only processors.

Sean Christopherson (1):
      KVM: PPC: Book3S HV P9: Use kvm_arch_vcpu_get_wait() to get rcuwait object

Thadeu Lima de Souza Cascardo (1):
      selftests/powerpc/spectre_v2: Return skip code when miss_percent is high

Xiang wangx (1):
      macintosh: Add const to of_device_id

Yang Guang (1):
      powerpc: use swap() to make code cleaner


 Documentation/admin-guide/kernel-parameters.txt                 |  16 +-
 arch/powerpc/Kconfig                                            |  10 +-
 arch/powerpc/Makefile                                           |   9 +-
 arch/powerpc/boot/crt0.S                                        |  33 +-
 arch/powerpc/boot/dts/digsy_mtc.dts                             |   8 -
 arch/powerpc/boot/dts/o2d.dtsi                                  |   6 -
 arch/powerpc/boot/zImage.lds.S                                  |   7 +-
 arch/powerpc/configs/microwatt_defconfig                        |   3 +-
 arch/powerpc/configs/ppc64_defconfig                            |   1 -
 arch/powerpc/configs/pseries_defconfig                          |   1 -
 arch/powerpc/crypto/md5-asm.S                                   |  10 +-
 arch/powerpc/crypto/sha1-powerpc-asm.S                          |   6 +-
 arch/powerpc/include/asm/asm-prototypes.h                       |   5 -
 arch/powerpc/include/asm/atomic.h                               | 151 +---
 arch/powerpc/include/asm/bitops.h                               |  89 +-
 arch/powerpc/include/asm/book3s/32/kup.h                        | 108 +--
 arch/powerpc/include/asm/book3s/32/mmu-hash.h                   |  82 +-
 arch/powerpc/include/asm/book3s/64/hash.h                       |   4 -
 arch/powerpc/include/asm/book3s/64/kup.h                        |  56 +-
 arch/powerpc/include/asm/book3s/64/mmu-hash.h                   |   8 +-
 arch/powerpc/include/asm/book3s/64/mmu.h                        |  38 +-
 arch/powerpc/include/asm/book3s/64/tlbflush-hash.h              |   6 +
 arch/powerpc/include/asm/book3s/64/tlbflush.h                   |   4 -
 arch/powerpc/include/asm/book3s/pgtable.h                       |   4 +
 arch/powerpc/include/asm/btext.h                                |  10 +-
 arch/powerpc/include/asm/code-patching.h                        |  40 +-
 arch/powerpc/include/asm/cpm2.h                                 |   6 +-
 arch/powerpc/include/asm/cpuidle.h                              |   2 +-
 arch/powerpc/include/asm/cputhreads.h                           |  33 -
 arch/powerpc/include/asm/eeh.h                                  |   2 +-
 arch/powerpc/include/asm/exception-64e.h                        |   4 +
 arch/powerpc/include/asm/fadump-internal.h                      |   6 +-
 arch/powerpc/include/asm/firmware.h                             |   8 -
 arch/powerpc/include/asm/floppy.h                               |   8 +-
 arch/powerpc/include/asm/head-64.h                              |  12 +-
 arch/powerpc/include/asm/hugetlb.h                              |   2 +-
 arch/powerpc/include/asm/hw_breakpoint.h                        |   5 +-
 arch/powerpc/include/asm/hw_irq.h                               | 107 ++-
 arch/powerpc/include/asm/i8259.h                                |   2 +-
 arch/powerpc/include/asm/inst.h                                 |  95 +-
 arch/powerpc/include/asm/interrupt.h                            |  73 +-
 arch/powerpc/include/asm/iommu.h                                |   2 +-
 arch/powerpc/include/asm/ipic.h                                 |   2 +-
 arch/powerpc/include/asm/irq.h                                  |   2 +-
 arch/powerpc/include/asm/kexec.h                                |   2 +-
 arch/powerpc/include/asm/kup.h                                  | 122 ++-
 arch/powerpc/include/asm/kvm_asm.h                              |   1 +
 arch/powerpc/include/asm/kvm_book3s.h                           |   6 +
 arch/powerpc/include/asm/kvm_book3s_64.h                        |   5 +-
 arch/powerpc/include/asm/kvm_guest.h                            |   2 +-
 arch/powerpc/include/asm/kvm_host.h                             |   7 +-
 arch/powerpc/include/asm/kvm_ppc.h                              |   4 +-
 arch/powerpc/include/asm/machdep.h                              |   2 -
 arch/powerpc/include/asm/mmu.h                                  |  16 +-
 arch/powerpc/include/asm/mmu_context.h                          |   4 +-
 arch/powerpc/include/asm/mpic.h                                 |   2 +-
 arch/powerpc/include/asm/nohash/32/kup-8xx.h                    |  50 +-
 arch/powerpc/include/asm/nohash/32/mmu-44x.h                    |   1 -
 arch/powerpc/include/asm/nohash/32/mmu-8xx.h                    |   6 +-
 arch/powerpc/include/asm/nohash/64/pgtable.h                    |   6 +
 arch/powerpc/include/asm/nohash/kup-booke.h                     | 110 +++
 arch/powerpc/include/asm/opal-api.h                             |   1 +
 arch/powerpc/include/asm/opal.h                                 |   2 +-
 arch/powerpc/include/asm/paca.h                                 |   8 +
 arch/powerpc/include/asm/pci.h                                  |   2 +-
 arch/powerpc/include/asm/perf_event_server.h                    |   2 +-
 arch/powerpc/include/asm/ppc-opcode.h                           |   6 +
 arch/powerpc/include/asm/ppc_asm.h                              |  43 +-
 arch/powerpc/include/asm/processor.h                            |  18 +-
 arch/powerpc/include/asm/ptrace.h                               |   2 +-
 arch/powerpc/include/asm/reg.h                                  |  16 +-
 arch/powerpc/include/asm/rtas.h                                 |   2 +-
 arch/powerpc/include/asm/sections.h                             |  16 +-
 arch/powerpc/include/asm/setup.h                                |   9 +-
 arch/powerpc/include/asm/smu.h                                  |   2 +-
 arch/powerpc/include/asm/sstep.h                                |   4 +-
 arch/powerpc/include/asm/switch_to.h                            |   3 +
 arch/powerpc/include/asm/task_size_64.h                         |   6 +-
 arch/powerpc/include/asm/time.h                                 |  19 +-
 arch/powerpc/include/asm/udbg.h                                 |  10 +-
 arch/powerpc/include/asm/uprobes.h                              |   1 -
 arch/powerpc/include/asm/xics.h                                 |   4 +-
 arch/powerpc/include/asm/xmon.h                                 |   2 +-
 arch/powerpc/kernel/Makefile                                    |   1 +
 arch/powerpc/kernel/align.c                                     |   4 +-
 arch/powerpc/kernel/asm-offsets.c                               |   5 +-
 arch/powerpc/kernel/btext.c                                     |  16 +-
 arch/powerpc/kernel/cacheinfo.c                                 |   5 +-
 arch/powerpc/kernel/cpu_setup_power.c                           |  12 +-
 arch/powerpc/kernel/dbell.c                                     |   3 +-
 arch/powerpc/kernel/dt_cpu_ftrs.c                               |  24 +-
 arch/powerpc/kernel/eeh_cache.c                                 |   2 +-
 arch/powerpc/kernel/eeh_driver.c                                | 162 ++--
 arch/powerpc/kernel/entry_32.S                                  |  54 +-
 arch/powerpc/kernel/entry_64.S                                  |   4 +-
 arch/powerpc/kernel/epapr_paravirt.c                            |   2 +-
 arch/powerpc/kernel/exceptions-64e.S                            |  14 +-
 arch/powerpc/kernel/exceptions-64s.S                            | 174 ++--
 arch/powerpc/kernel/fadump.c                                    |  26 +-
 arch/powerpc/kernel/fpu.S                                       |   5 +
 arch/powerpc/kernel/head_32.h                                   |   9 +-
 arch/powerpc/kernel/head_40x.S                                  |  17 +-
 arch/powerpc/kernel/head_44x.S                                  |  26 +-
 arch/powerpc/kernel/head_64.S                                   |  20 +-
 arch/powerpc/kernel/head_book3s_32.S                            |   4 +
 arch/powerpc/kernel/head_booke.h                                |   3 +-
 arch/powerpc/kernel/head_fsl_booke.S                            |  13 +
 arch/powerpc/kernel/hw_breakpoint.c                             |   4 +-
 arch/powerpc/kernel/hw_breakpoint_constraints.c                 |   4 +-
 arch/powerpc/kernel/idle.c                                      |   2 +-
 arch/powerpc/kernel/idle_6xx.S                                  |   2 +-
 arch/powerpc/kernel/interrupt.c                                 |   3 +-
 arch/powerpc/kernel/interrupt_64.S                              |  46 +-
 arch/powerpc/kernel/irq.c                                       |   5 +-
 arch/powerpc/kernel/kgdb.c                                      |   4 +-
 arch/powerpc/kernel/kprobes.c                                   |   4 +-
 arch/powerpc/kernel/l2cr_6xx.S                                  |   6 +-
 arch/powerpc/kernel/mce.c                                       |   2 +-
 arch/powerpc/kernel/mce_power.c                                 |  18 +-
 arch/powerpc/kernel/module.c                                    |  11 +-
 arch/powerpc/kernel/module_32.c                                 |  33 +
 arch/powerpc/kernel/nvram_64.c                                  |   6 +-
 arch/powerpc/kernel/optprobes.c                                 |  12 +-
 arch/powerpc/kernel/optprobes_head.S                            |   4 +-
 arch/powerpc/kernel/paca.c                                      |  18 +-
 arch/powerpc/kernel/pci-common.c                                |   2 +-
 arch/powerpc/kernel/pci_32.c                                    |   4 +-
 arch/powerpc/kernel/process.c                                   |  58 +-
 arch/powerpc/kernel/prom.c                                      |   6 +-
 arch/powerpc/kernel/prom_init.c                                 |  14 +-
 arch/powerpc/kernel/rtas.c                                      | 104 ++-
 arch/powerpc/kernel/rtasd.c                                     |   6 +-
 arch/powerpc/kernel/security.c                                  |   4 +-
 arch/powerpc/kernel/setup-common.c                              |   2 +-
 arch/powerpc/kernel/setup.h                                     |   2 +-
 arch/powerpc/kernel/setup_32.c                                  |   4 +-
 arch/powerpc/kernel/setup_64.c                                  |  23 +-
 arch/powerpc/kernel/signal_32.c                                 |  14 +-
 arch/powerpc/kernel/smp.c                                       |  47 +-
 arch/powerpc/kernel/swsusp_32.S                                 |   2 +-
 arch/powerpc/kernel/swsusp_asm64.S                              |   2 +-
 arch/powerpc/kernel/sysfs.c                                     |  10 +-
 arch/powerpc/kernel/time.c                                      |  87 +-
 arch/powerpc/kernel/tm.S                                        |  15 +-
 arch/powerpc/kernel/trace/ftrace.c                              | 107 +--
 arch/powerpc/kernel/trace/ftrace_32.S                           | 118 ++-
 arch/powerpc/kernel/trace/ftrace_64_mprofile.S                  |  15 +-
 arch/powerpc/kernel/udbg_16550.c                                |  10 +-
 arch/powerpc/kernel/vecemu.c                                    |   2 +-
 arch/powerpc/kernel/vector.S                                    |  10 +
 arch/powerpc/kernel/vmlinux.lds.S                               |  16 +-
 arch/powerpc/kernel/watchdog.c                                  | 223 ++++-
 arch/powerpc/kexec/core.c                                       |   2 +-
 arch/powerpc/kexec/core_64.c                                    |   4 +-
 arch/powerpc/kexec/ranges.c                                     |   2 +-
 arch/powerpc/kvm/Kconfig                                        |  16 +
 arch/powerpc/kvm/book3s_64_entry.S                              |  11 +-
 arch/powerpc/kvm/book3s_64_mmu_radix.c                          |   4 +
 arch/powerpc/kvm/book3s_hv.c                                    | 860 +++++++++---------
 arch/powerpc/kvm/book3s_hv.h                                    |  42 +
 arch/powerpc/kvm/book3s_hv_builtin.c                            |  55 +-
 arch/powerpc/kvm/book3s_hv_hmi.c                                |   7 +-
 arch/powerpc/kvm/book3s_hv_interrupts.S                         |  13 +-
 arch/powerpc/kvm/book3s_hv_nested.c                             |  10 +-
 arch/powerpc/kvm/book3s_hv_p9_entry.c                           | 911 +++++++++++++++++---
 arch/powerpc/kvm/book3s_hv_ras.c                                |  54 ++
 arch/powerpc/kvm/book3s_hv_rm_mmu.c                             |   6 -
 arch/powerpc/kvm/book3s_hv_rmhandlers.S                         |  78 +-
 arch/powerpc/lib/Makefile                                       |   7 +-
 arch/powerpc/lib/code-patching.c                                | 497 ++---------
 arch/powerpc/lib/feature-fixups.c                               |  30 +-
 arch/powerpc/lib/sstep.c                                        |   4 +-
 arch/powerpc/lib/test-code-patching.c                           | 362 ++++++++
 arch/powerpc/lib/test_code-patching.S                           |  20 -
 arch/powerpc/lib/test_emulate_step.c                            |  10 +-
 arch/powerpc/lib/test_emulate_step_exec_instr.S                 |   8 +-
 arch/powerpc/mm/book3s32/Makefile                               |   1 -
 arch/powerpc/mm/book3s32/kuap.c                                 |   5 +-
 arch/powerpc/mm/book3s32/kuep.c                                 |  20 -
 arch/powerpc/mm/book3s32/mmu.c                                  |   7 +-
 arch/powerpc/mm/book3s32/mmu_context.c                          |  15 +-
 arch/powerpc/mm/book3s64/Makefile                               |  19 +-
 arch/powerpc/mm/book3s64/hash_native.c                          | 108 +--
 arch/powerpc/mm/book3s64/hash_pgtable.c                         |   1 -
 arch/powerpc/mm/book3s64/hash_utils.c                           | 117 ++-
 arch/powerpc/mm/book3s64/{hash_hugetlbpage.c => hugetlbpage.c}  |   4 +-
 arch/powerpc/mm/book3s64/mmu_context.c                          |  34 +-
 arch/powerpc/mm/book3s64/pgtable.c                              |  32 +-
 arch/powerpc/mm/book3s64/pkeys.c                                |   2 +-
 arch/powerpc/mm/book3s64/radix_pgtable.c                        |  40 +-
 arch/powerpc/mm/book3s64/slb.c                                  |  16 -
 arch/powerpc/mm/book3s64/trace.c                                |   8 +
 arch/powerpc/mm/copro_fault.c                                   |   2 +
 arch/powerpc/mm/fault.c                                         |  24 +
 arch/powerpc/mm/hugetlbpage.c                                   |  16 +-
 arch/powerpc/mm/init-common.c                                   |  21 +
 arch/powerpc/mm/init_64.c                                       |  59 +-
 arch/powerpc/mm/ioremap.c                                       |  20 -
 arch/powerpc/mm/kasan/book3s_32.c                               |   3 +-
 arch/powerpc/mm/maccess.c                                       |  17 -
 arch/powerpc/mm/mem.c                                           |   2 -
 arch/powerpc/mm/mmap.c                                          |  40 +-
 arch/powerpc/mm/mmu_context.c                                   |  11 +-
 arch/powerpc/mm/nohash/44x.c                                    |  20 +-
 arch/powerpc/mm/nohash/8xx.c                                    |  33 -
 arch/powerpc/mm/nohash/Makefile                                 |   2 +-
 arch/powerpc/mm/nohash/book3e_pgtable.c                         |  15 +
 arch/powerpc/mm/nohash/fsl_book3e.c                             |  10 +-
 arch/powerpc/mm/nohash/kup.c                                    |  33 +
 arch/powerpc/mm/nohash/mmu_context.c                            |   6 +-
 arch/powerpc/mm/nohash/tlb.c                                    |  13 +-
 arch/powerpc/mm/nohash/tlb_low_64e.S                            |  40 +-
 arch/powerpc/mm/numa.c                                          |   6 +-
 arch/powerpc/mm/pgtable.c                                       |   9 +-
 arch/powerpc/mm/pgtable_64.c                                    |  14 +-
 arch/powerpc/mm/ptdump/Makefile                                 |   2 +-
 arch/powerpc/mm/ptdump/ptdump.c                                 |   6 +-
 arch/powerpc/mm/slice.c                                         |  20 -
 arch/powerpc/net/bpf_jit.h                                      |  17 +-
 arch/powerpc/net/bpf_jit_comp.c                                 |  68 +-
 arch/powerpc/net/bpf_jit_comp32.c                               | 101 ++-
 arch/powerpc/net/bpf_jit_comp64.c                               |  72 +-
 arch/powerpc/perf/8xx-pmu.c                                     |   2 +-
 arch/powerpc/perf/core-book3s.c                                 | 126 ++-
 arch/powerpc/perf/generic-compat-pmu.c                          |   2 +-
 arch/powerpc/perf/hv-24x7.c                                     |   2 +-
 arch/powerpc/perf/internal.h                                    |  18 +-
 arch/powerpc/perf/isa207-common.c                               |  60 +-
 arch/powerpc/perf/power10-pmu.c                                 |   2 +-
 arch/powerpc/perf/power5+-pmu.c                                 |   2 +-
 arch/powerpc/perf/power5-pmu.c                                  |   2 +-
 arch/powerpc/perf/power6-pmu.c                                  |   2 +-
 arch/powerpc/perf/power7-pmu.c                                  |   2 +-
 arch/powerpc/perf/power8-pmu.c                                  |   2 +-
 arch/powerpc/perf/power9-pmu.c                                  |   2 +-
 arch/powerpc/perf/ppc970-pmu.c                                  |   2 +-
 arch/powerpc/platforms/44x/fsp2.c                               |   4 +-
 arch/powerpc/platforms/4xx/cpm.c                                |   4 +-
 arch/powerpc/platforms/4xx/pci.c                                |   2 +-
 arch/powerpc/platforms/512x/clock-commonclk.c                   |  52 +-
 arch/powerpc/platforms/512x/mpc512x.h                           |   4 +-
 arch/powerpc/platforms/512x/mpc512x_shared.c                    |   4 +-
 arch/powerpc/platforms/52xx/Kconfig                             |   2 +-
 arch/powerpc/platforms/83xx/km83xx.c                            |   2 +-
 arch/powerpc/platforms/83xx/mpc834x_mds.c                       |   2 +-
 arch/powerpc/platforms/83xx/mpc837x_mds.c                       |   2 +-
 arch/powerpc/platforms/83xx/mpc837x_rdb.c                       |   2 +-
 arch/powerpc/platforms/83xx/mpc83xx.h                           |   6 +-
 arch/powerpc/platforms/83xx/usb.c                               |   6 +-
 arch/powerpc/platforms/85xx/c293pcie.c                          |   2 +-
 arch/powerpc/platforms/85xx/ge_imp3a.c                          |   2 +-
 arch/powerpc/platforms/85xx/mpc85xx_cds.c                       |   2 +-
 arch/powerpc/platforms/85xx/mpc85xx_pm_ops.c                    |   2 +
 arch/powerpc/platforms/85xx/smp.c                               |   4 +-
 arch/powerpc/platforms/85xx/socrates_fpga_pic.c                 |   2 +-
 arch/powerpc/platforms/85xx/socrates_fpga_pic.h                 |   2 +-
 arch/powerpc/platforms/85xx/xes_mpc85xx.c                       |   4 +-
 arch/powerpc/platforms/Kconfig                                  |   4 +-
 arch/powerpc/platforms/Kconfig.cputype                          |  58 +-
 arch/powerpc/platforms/cell/Kconfig                             |   3 +-
 arch/powerpc/platforms/cell/cbe_regs.c                          |   2 +-
 arch/powerpc/platforms/cell/iommu.c                             |  15 +-
 arch/powerpc/platforms/cell/pervasive.c                         |   1 +
 arch/powerpc/platforms/cell/spu_base.c                          |   6 +-
 arch/powerpc/platforms/cell/spu_manage.c                        |  16 +-
 arch/powerpc/platforms/cell/spufs/inode.c                       |   2 +-
 arch/powerpc/platforms/chrp/Kconfig                             |   2 +-
 arch/powerpc/platforms/chrp/pegasos_eth.c                       |   2 +-
 arch/powerpc/platforms/embedded6xx/Kconfig                      |   2 +-
 arch/powerpc/platforms/embedded6xx/hlwd-pic.c                   |   5 +-
 arch/powerpc/platforms/embedded6xx/hlwd-pic.h                   |   2 +-
 arch/powerpc/platforms/embedded6xx/holly.c                      |   2 +-
 arch/powerpc/platforms/embedded6xx/usbgecko_udbg.c              |   4 +-
 arch/powerpc/platforms/embedded6xx/wii.c                        |   2 +-
 arch/powerpc/platforms/maple/Kconfig                            |   3 +-
 arch/powerpc/platforms/microwatt/Kconfig                        |   1 -
 arch/powerpc/platforms/microwatt/rng.c                          |   2 +-
 arch/powerpc/platforms/pasemi/Kconfig                           |   3 +-
 arch/powerpc/platforms/pasemi/msi.c                             |   2 +-
 arch/powerpc/platforms/pasemi/pasemi.h                          |   2 +-
 arch/powerpc/platforms/pasemi/pci.c                             |   2 +-
 arch/powerpc/platforms/pasemi/setup.c                           |   2 +-
 arch/powerpc/platforms/powermac/Kconfig                         |   3 +-
 arch/powerpc/platforms/powermac/cache.S                         |   4 +-
 arch/powerpc/platforms/powermac/feature.c                       |   2 +-
 arch/powerpc/platforms/powermac/low_i2c.c                       |   3 +
 arch/powerpc/platforms/powermac/nvram.c                         |   2 +-
 arch/powerpc/platforms/powermac/pfunc_base.c                    |   6 +-
 arch/powerpc/platforms/powermac/pic.c                           |   6 +-
 arch/powerpc/platforms/powermac/setup.c                         |   6 +-
 arch/powerpc/platforms/powermac/smp.c                           |   4 +-
 arch/powerpc/platforms/powermac/udbg_scc.c                      |   2 +-
 arch/powerpc/platforms/powernv/Kconfig                          |   2 +-
 arch/powerpc/platforms/powernv/idle.c                           |  27 +-
 arch/powerpc/platforms/powernv/opal-core.c                      |   6 +-
 arch/powerpc/platforms/powernv/opal-dump.c                      |   3 +-
 arch/powerpc/platforms/powernv/opal-elog.c                      |   3 +-
 arch/powerpc/platforms/powernv/opal-fadump.c                    |   2 +-
 arch/powerpc/platforms/powernv/opal-imc.c                       |   6 +-
 arch/powerpc/platforms/powernv/opal-lpc.c                       |   1 +
 arch/powerpc/platforms/powernv/opal-msglog.c                    |   4 +-
 arch/powerpc/platforms/powernv/opal-power.c                     |   2 +-
 arch/powerpc/platforms/powernv/opal-powercap.c                  |   2 +-
 arch/powerpc/platforms/powernv/opal-rtc.c                       |   2 +-
 arch/powerpc/platforms/powernv/opal-sensor-groups.c             |   4 +-
 arch/powerpc/platforms/powernv/opal.c                           |   8 +-
 arch/powerpc/platforms/powernv/pci-ioda.c                       |   4 +-
 arch/powerpc/platforms/powernv/powernv.h                        |   4 +-
 arch/powerpc/platforms/powernv/rng.c                            |   2 +-
 arch/powerpc/platforms/powernv/setup.c                          |  18 +-
 arch/powerpc/platforms/ps3/gelic_udbg.c                         |   2 +-
 arch/powerpc/platforms/ps3/mm.c                                 |   4 +-
 arch/powerpc/platforms/ps3/os-area.c                            |   4 +-
 arch/powerpc/platforms/ps3/platform.h                           |  14 +-
 arch/powerpc/platforms/ps3/repository.c                         |  20 +-
 arch/powerpc/platforms/ps3/smp.c                                |   2 +-
 arch/powerpc/platforms/ps3/spu.c                                |   2 +-
 arch/powerpc/platforms/pseries/Kconfig                          |   5 -
 arch/powerpc/platforms/pseries/Makefile                         |   1 -
 arch/powerpc/platforms/pseries/event_sources.c                  |   2 +-
 arch/powerpc/platforms/pseries/hotplug-cpu.c                    |   9 +-
 arch/powerpc/platforms/pseries/iommu.c                          |   2 +-
 arch/powerpc/platforms/pseries/lpar.c                           |  71 +-
 arch/powerpc/platforms/pseries/lparcfg.c                        |   5 +-
 arch/powerpc/platforms/pseries/mobility.c                       |   4 +
 arch/powerpc/platforms/pseries/pseries.h                        |   7 +-
 arch/powerpc/platforms/pseries/ras.c                            |   2 +
 arch/powerpc/platforms/pseries/rtas-fadump.c                    |   6 +-
 arch/powerpc/platforms/pseries/scanlog.c                        | 195 -----
 arch/powerpc/platforms/pseries/setup.c                          |  10 +-
 arch/powerpc/platforms/pseries/vas.c                            |  13 +-
 arch/powerpc/platforms/pseries/vio.c                            |   6 +-
 arch/powerpc/sysdev/cpm2.c                                      |   6 +-
 arch/powerpc/sysdev/dart_iommu.c                                |   2 +-
 arch/powerpc/sysdev/fsl_mpic_err.c                              |   4 +-
 arch/powerpc/sysdev/fsl_pci.c                                   |   2 +-
 arch/powerpc/sysdev/fsl_pci.h                                   |   2 +-
 arch/powerpc/sysdev/i8259.c                                     |   2 +-
 arch/powerpc/sysdev/ipic.c                                      |   2 +-
 arch/powerpc/sysdev/mpic.c                                      |   5 +-
 arch/powerpc/sysdev/mpic.h                                      |  10 +-
 arch/powerpc/sysdev/mpic_msi.c                                  |   6 +-
 arch/powerpc/sysdev/mpic_timer.c                                |   6 +-
 arch/powerpc/sysdev/mpic_u3msi.c                                |   2 +-
 arch/powerpc/sysdev/tsi108_dev.c                                |   3 +-
 arch/powerpc/sysdev/tsi108_pci.c                                |   2 +-
 arch/powerpc/sysdev/udbg_memcons.c                              |   2 +-
 arch/powerpc/sysdev/xics/icp-hv.c                               |   2 +-
 arch/powerpc/sysdev/xics/icp-opal.c                             |   2 +-
 arch/powerpc/sysdev/xics/xics-common.c                          |   2 +-
 arch/powerpc/sysdev/xive/common.c                               | 214 +++--
 arch/powerpc/sysdev/xive/native.c                               |  19 +-
 arch/powerpc/sysdev/xive/spapr.c                                |  47 +-
 arch/powerpc/sysdev/xive/xive-internal.h                        |   2 +
 arch/powerpc/xmon/xmon.c                                        |  38 +-
 arch/powerpc/xmon/xmon_bpts.h                                   |   4 +-
 drivers/macintosh/mediabay.c                                    |   2 +-
 drivers/misc/cxl/Kconfig                                        |   1 +
 drivers/misc/lkdtm/Makefile                                     |   2 +-
 drivers/misc/lkdtm/core.c                                       |   2 +-
 drivers/misc/ocxl/file.c                                        |   4 +-
 include/linux/cuda.h                                            |   2 +-
 include/linux/pmu.h                                             |   2 +-
 include/uapi/linux/perf_event.h                                 |   5 +-
 tools/testing/selftests/powerpc/security/mitigation-patching.sh |   5 +-
 tools/testing/selftests/powerpc/security/spectre_v2.c           |   2 +-
 tools/testing/selftests/powerpc/signal/.gitignore               |   2 +
 tools/testing/selftests/powerpc/signal/Makefile                 |   2 +
 tools/testing/selftests/powerpc/signal/sigreturn_kernel.c       | 132 +++
 tools/testing/selftests/powerpc/signal/sigreturn_unaligned.c    |  43 +
 370 files changed, 5618 insertions(+), 3431 deletions(-)
 create mode 100644 arch/powerpc/include/asm/nohash/kup-booke.h
 create mode 100644 arch/powerpc/kvm/book3s_hv.h
 create mode 100644 arch/powerpc/lib/test-code-patching.c
 delete mode 100644 arch/powerpc/lib/test_code-patching.S
 delete mode 100644 arch/powerpc/mm/book3s32/kuep.c
 rename arch/powerpc/mm/book3s64/{hash_hugetlbpage.c => hugetlbpage.c} (98%)
 create mode 100644 arch/powerpc/mm/book3s64/trace.c
 create mode 100644 arch/powerpc/mm/nohash/kup.c
 delete mode 100644 arch/powerpc/platforms/pseries/scanlog.c
 create mode 100644 tools/testing/selftests/powerpc/signal/sigreturn_kernel.c
 create mode 100644 tools/testing/selftests/powerpc/signal/sigreturn_unaligned.c
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEJFGtCPCthwEv2Y/bUevqPMjhpYAFAmHhZRAACgkQUevqPMjh
pYCIlBAAhv5syhwD5t1aoueN6uqxeH89u/SaAsDrAoILt90QGZXY7ya89AsRqSxs
V5v+IxbMrTjpZ20ETyXfcFkdBVjWvE+X2EmR4jYN4dKWygjGfX68QErUspJnQRzv
YvOyypdVnYJUhs6gG5c4FHkDP1ZRsrTgqDk79olzciFmN02fuYrJxx52pko8rQsY
Tza6dYWJ/u010AaBk/WgUiFu7QzHZUjK6LT1bIjRIqDADdZKsbWhgxMx7NMQM9Rj
WpTiE/CUBrk/hd6Dx1TeOfBTw9Q/PwbJJx9RN7uV2J7AeP4cognFU6R76QLCGTit
Nhan7kavx9lAqsBKqN4Vxmw0SlUAfPg8Q1KbTS8AZ6HNqQPHOiQjMevi4D1q2tRk
CR/qRUl9eVZ+fmpawa8RrZpVtr4ztGtd1faW34BauKn3D1dhJ3jW8GV4Eut9+cOX
d7LI3ENt65EFb+YrN4yfZpON/ejGbD5lqHNMunKgZS40AYkOT32dpxOCAS1/DEi1
reV2IqCVh/px2DfDrNQkTh2sApR2KUTkm4mMgr6jMd0QzMuUvp0zRj8vTQ6Hl5Qe
hN50kUVvhr74Ezt7+1DAHw8NbEJosfHv2u48VUHgRUjml6JCLIx6vKsghRO8klAe
koc3hdwpbXY/N8y/1KL+mTo/Eik7c1c9Yaf6B/CZvgT+MPBLi3A=
=xo7O
-----END PGP SIGNATURE-----

^ permalink raw reply

* Re: [PATCH] net: apple: mace: Fix build since dev_addr constification
From: patchwork-bot+netdevbpf @ 2022-01-14 11:30 UTC (permalink / raw)
  To: Michael Ellerman; +Cc: netdev, linuxppc-dev, davem, kuba
In-Reply-To: <20220114031252.2419042-1-mpe@ellerman.id.au>

Hello:

This patch was applied to netdev/net.git (master)
by David S. Miller <davem@davemloft.net>:

On Fri, 14 Jan 2022 14:12:52 +1100 you wrote:
> Since commit adeef3e32146 ("net: constify netdev->dev_addr") the mace
> driver no longer builds with various errors (pmac32_defconfig):
> 
>   linux/drivers/net/ethernet/apple/mace.c: In function ‘mace_probe’:
>   linux/drivers/net/ethernet/apple/mace.c:170:20: error: assignment of read-only location ‘*(dev->dev_addr + (sizetype)j)’
>     170 |   dev->dev_addr[j] = rev ? bitrev8(addr[j]): addr[j];
>         |                    ^
>   linux/drivers/net/ethernet/apple/mace.c: In function ‘mace_reset’:
>   linux/drivers/net/ethernet/apple/mace.c:349:32: warning: passing argument 2 of ‘__mace_set_address’ discards ‘const’ qualifier from pointer target type
>     349 |     __mace_set_address(dev, dev->dev_addr);
>         |                             ~~~^~~~~~~~~~
>   linux/drivers/net/ethernet/apple/mace.c:93:62: note: expected ‘void *’ but argument is of type ‘const unsigned char *’
>      93 | static void __mace_set_address(struct net_device *dev, void *addr);
>         |                                                        ~~~~~~^~~~
>   linux/drivers/net/ethernet/apple/mace.c: In function ‘__mace_set_address’:
>   linux/drivers/net/ethernet/apple/mace.c:388:36: error: assignment of read-only location ‘*(dev->dev_addr + (sizetype)i)’
>     388 |  out_8(&mb->padr, dev->dev_addr[i] = p[i]);
>         |                                    ^
> 
> [...]

Here is the summary with links:
  - net: apple: mace: Fix build since dev_addr constification
    https://git.kernel.org/netdev/net/c/6c8dc12cd925

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply

* Re: [PATCH] net: apple: bmac: Fix build since dev_addr constification
From: patchwork-bot+netdevbpf @ 2022-01-14 11:30 UTC (permalink / raw)
  To: Michael Ellerman; +Cc: netdev, linuxppc-dev, davem, kuba
In-Reply-To: <20220114031316.2419293-1-mpe@ellerman.id.au>

Hello:

This patch was applied to netdev/net.git (master)
by David S. Miller <davem@davemloft.net>:

On Fri, 14 Jan 2022 14:13:16 +1100 you wrote:
> Since commit adeef3e32146 ("net: constify netdev->dev_addr") the bmac
> driver no longer builds with the following errors (pmac32_defconfig):
> 
>   linux/drivers/net/ethernet/apple/bmac.c: In function ‘bmac_probe’:
>   linux/drivers/net/ethernet/apple/bmac.c:1287:20: error: assignment of read-only location ‘*(dev->dev_addr + (sizetype)j)’
>    1287 |   dev->dev_addr[j] = rev ? bitrev8(addr[j]): addr[j];
>         |                    ^
> 
> [...]

Here is the summary with links:
  - net: apple: bmac: Fix build since dev_addr constification
    https://git.kernel.org/netdev/net/c/ea938248557a

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply

* [PATCH v2] powerpc/audit: Fix syscall_get_arch()
From: Christophe Leroy @ 2022-01-14 11:26 UTC (permalink / raw)
  To: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman
  Cc: stable@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-kernel@vger.kernel.org, Dmitry V . Levin

Commit 770cec16cdc9 ("powerpc/audit: Simplify syscall_get_arch()")
and commit 898a1ef06ad4 ("powerpc/audit: Avoid unneccessary #ifdef
in syscall_get_arguments()")
replaced test_tsk_thread_flag(task, TIF_32BIT)) by is_32bit_task().

But is_32bit_task() applies on current task while be want the test
done on task 'task'

So add a new macro is_tsk_32bit_task() to check any task.

Reported-by: Dmitry V. Levin <ldv@altlinux.org>
Fixes: 770cec16cdc9 ("powerpc/audit: Simplify syscall_get_arch()")
Fixes: 898a1ef06ad4 ("powerpc/audit: Avoid unneccessary #ifdef in syscall_get_arguments()")
Cc: stable@vger.kernel.org
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
---
v2: Add new macro and handle second erroneous use of is_32bit_task().
---
 arch/powerpc/include/asm/syscall.h     | 4 ++--
 arch/powerpc/include/asm/thread_info.h | 2 ++
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/include/asm/syscall.h b/arch/powerpc/include/asm/syscall.h
index 52d05b465e3e..25fc8ad9a27a 100644
--- a/arch/powerpc/include/asm/syscall.h
+++ b/arch/powerpc/include/asm/syscall.h
@@ -90,7 +90,7 @@ static inline void syscall_get_arguments(struct task_struct *task,
 	unsigned long val, mask = -1UL;
 	unsigned int n = 6;
 
-	if (is_32bit_task())
+	if (is_tsk_32bit_task(task))
 		mask = 0xffffffff;
 
 	while (n--) {
@@ -105,7 +105,7 @@ static inline void syscall_get_arguments(struct task_struct *task,
 
 static inline int syscall_get_arch(struct task_struct *task)
 {
-	if (is_32bit_task())
+	if (is_tsk_32bit_task(task))
 		return AUDIT_ARCH_PPC;
 	else if (IS_ENABLED(CONFIG_CPU_LITTLE_ENDIAN))
 		return AUDIT_ARCH_PPC64LE;
diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
index 5725029aaa29..d6e649b3c70b 100644
--- a/arch/powerpc/include/asm/thread_info.h
+++ b/arch/powerpc/include/asm/thread_info.h
@@ -168,8 +168,10 @@ static inline bool test_thread_local_flags(unsigned int flags)
 
 #ifdef CONFIG_COMPAT
 #define is_32bit_task()	(test_thread_flag(TIF_32BIT))
+#define is_tsk_32bit_task(tsk)	(test_tsk_thread_flag(tsk, TIF_32BIT))
 #else
 #define is_32bit_task()	(IS_ENABLED(CONFIG_PPC32))
+#define is_tsk_32bit_task(tsk)	(IS_ENABLED(CONFIG_PPC32))
 #endif
 
 #if defined(CONFIG_PPC64)
-- 
2.33.1

^ permalink raw reply related

* Re: [PATCH 11/13] powerpc64/bpf elfv2: Setup kernel TOC in r2 on entry
From: Naveen N. Rao @ 2022-01-14 11:17 UTC (permalink / raw)
  To: Alexei Starovoitov, Christophe Leroy, Daniel Borkmann,
	Michael Ellerman
  Cc: ykaliuta@redhat.com, johan.almbladh@anyfinetworks.com, Jiri Olsa,
	masahiroy, song@kernel.org, bpf@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, Hari Bathini
In-Reply-To: <01d558b9-82b7-f73e-70d6-d19a192d47b6@csgroup.eu>

Christophe Leroy wrote:
> 
> 
> Le 11/01/2022 à 15:35, Christophe Leroy a écrit :
>> 
>> 
>> Le 11/01/2022 à 11:31, Naveen N. Rao a écrit :
>>> Christophe Leroy wrote:
>>>>
>>>>
>>>> Le 06/01/2022 à 12:45, Naveen N. Rao a écrit :
>>>>> In preparation for using kernel TOC, load the same in r2 on entry. With
>>>>> elfv1, the kernel TOC is already setup by our caller so we just emit a
>>>>> nop. We adjust the number of instructions to skip on a tail call
>>>>> accordingly.
>>>>>
>>>>> Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
>>>>> ---
>>>>>    arch/powerpc/net/bpf_jit_comp64.c | 8 +++++++-
>>>>>    1 file changed, 7 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/arch/powerpc/net/bpf_jit_comp64.c
>>>>> b/arch/powerpc/net/bpf_jit_comp64.c
>>>>> index ce4fc59bbd6a92..e05b577d95bf11 100644
>>>>> --- a/arch/powerpc/net/bpf_jit_comp64.c
>>>>> +++ b/arch/powerpc/net/bpf_jit_comp64.c
>>>>> @@ -73,6 +73,12 @@ void bpf_jit_build_prologue(u32 *image, struct
>>>>> codegen_context *ctx)
>>>>>    {
>>>>>        int i;
>>>>> +#ifdef PPC64_ELF_ABI_v2
>>>>> +    PPC_BPF_LL(_R2, _R13, offsetof(struct paca_struct, kernel_toc));
>>>>> +#else
>>>>> +    EMIT(PPC_RAW_NOP());
>>>>> +#endif
>>>>
>>>> Can we avoid the #ifdef, using
>>>>
>>>>      if (__is_defined(PPC64_ELF_ABI_v2))
>>>>          PPC_BPF_LL(_R2, _R13, offsetof(struct paca_struct, kernel_toc));
>>>>      else
>>>>          EMIT(PPC_RAW_NOP());
>>>
>>> Hmm... that doesn't work for me. Is __is_defined() expected to work with
>>> macros other than CONFIG options?
>> 
>> Yes, __is_defined() should work with any item.
>> 
>> It is IS_ENABLED() which is supposed to work only with CONFIG options.

I suppose you are saying that due to the name? Since IS_ENABLED() and 
IS_BUILTIN() seem to work fine too, once I define the macro as 1.

Along those lines, it would have been nice to have IS_DEFINED().

>> 
>> See commit 5c189c523e78 ("powerpc/time: Fix mftb()/get_tb() for use with
>> the compat VDSO")
>> 
>> Or commit ca5999fde0a1 ("mm: introduce include/linux/pgtable.h")
> 
> Ah ... wait.
> 
> It seems it expects a macro set to 1.
> 
> So it would require arch/powerpc/include/asm/types.h to be modified to 
> define PPC64_ELF_ABI_v2 or PPC64_ELF_ABI_v1 as 1

Thanks, that works.


- Naveen

^ permalink raw reply

* [PATCH] powerpc: Add missing SPDX license identifiers to DTS files
From: Christophe Leroy @ 2022-01-14 10:49 UTC (permalink / raw)
  To: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman
  Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org

Several DTS files are missing SPDX license identifiers.

Add to them the default kernel license identifier, ie GPL-2.0.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
---
 arch/powerpc/boot/dts/acadia.dts                               | 1 +
 arch/powerpc/boot/dts/akebono.dts                              | 1 +
 arch/powerpc/boot/dts/bamboo.dts                               | 1 +
 arch/powerpc/boot/dts/canyonlands.dts                          | 1 +
 arch/powerpc/boot/dts/currituck.dts                            | 1 +
 arch/powerpc/boot/dts/ebony.dts                                | 1 +
 arch/powerpc/boot/dts/eiger.dts                                | 1 +
 arch/powerpc/boot/dts/fsl/b4420qds.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/b4420si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/b4420si-pre.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/b4860qds.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/b4860si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/b4860si-pre.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/b4qds.dtsi                           | 1 +
 arch/powerpc/boot/dts/fsl/b4si-post.dtsi                       | 1 +
 arch/powerpc/boot/dts/fsl/bsc9131rdb.dtsi                      | 1 +
 arch/powerpc/boot/dts/fsl/bsc9131si-post.dtsi                  | 1 +
 arch/powerpc/boot/dts/fsl/bsc9131si-pre.dtsi                   | 1 +
 arch/powerpc/boot/dts/fsl/bsc9132qds.dtsi                      | 1 +
 arch/powerpc/boot/dts/fsl/bsc9132si-post.dtsi                  | 1 +
 arch/powerpc/boot/dts/fsl/bsc9132si-pre.dtsi                   | 1 +
 arch/powerpc/boot/dts/fsl/c293pcie.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/c293si-post.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/c293si-pre.dtsi                      | 1 +
 arch/powerpc/boot/dts/fsl/e500mc_power_isa.dtsi                | 1 +
 arch/powerpc/boot/dts/fsl/e500v2_power_isa.dtsi                | 1 +
 arch/powerpc/boot/dts/fsl/e5500_power_isa.dtsi                 | 1 +
 arch/powerpc/boot/dts/fsl/e6500_power_isa.dtsi                 | 1 +
 arch/powerpc/boot/dts/fsl/elo3-dma-0.dtsi                      | 1 +
 arch/powerpc/boot/dts/fsl/elo3-dma-1.dtsi                      | 1 +
 arch/powerpc/boot/dts/fsl/elo3-dma-2.dtsi                      | 1 +
 arch/powerpc/boot/dts/fsl/interlaken-lac-portals.dtsi          | 1 +
 arch/powerpc/boot/dts/fsl/interlaken-lac.dtsi                  | 1 +
 arch/powerpc/boot/dts/fsl/mpc8536ds.dtsi                       | 1 +
 arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi                  | 1 +
 arch/powerpc/boot/dts/fsl/mpc8536si-pre.dtsi                   | 1 +
 arch/powerpc/boot/dts/fsl/mpc8544ds.dtsi                       | 1 +
 arch/powerpc/boot/dts/fsl/mpc8544si-post.dtsi                  | 1 +
 arch/powerpc/boot/dts/fsl/mpc8544si-pre.dtsi                   | 1 +
 arch/powerpc/boot/dts/fsl/mpc8548cds.dtsi                      | 1 +
 arch/powerpc/boot/dts/fsl/mpc8548si-post.dtsi                  | 1 +
 arch/powerpc/boot/dts/fsl/mpc8548si-pre.dtsi                   | 1 +
 arch/powerpc/boot/dts/fsl/mpc8568si-post.dtsi                  | 1 +
 arch/powerpc/boot/dts/fsl/mpc8568si-pre.dtsi                   | 1 +
 arch/powerpc/boot/dts/fsl/mpc8569si-post.dtsi                  | 1 +
 arch/powerpc/boot/dts/fsl/mpc8569si-pre.dtsi                   | 1 +
 arch/powerpc/boot/dts/fsl/mpc8572ds.dtsi                       | 1 +
 arch/powerpc/boot/dts/fsl/mpc8572si-post.dtsi                  | 1 +
 arch/powerpc/boot/dts/fsl/mpc8572si-pre.dtsi                   | 1 +
 arch/powerpc/boot/dts/fsl/oca4080.dts                          | 1 +
 arch/powerpc/boot/dts/fsl/p1010rdb-pa.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/p1010rdb-pa_36b.dts                  | 1 +
 arch/powerpc/boot/dts/fsl/p1010rdb-pb_36b.dts                  | 1 +
 arch/powerpc/boot/dts/fsl/p1010rdb.dtsi                        | 1 +
 arch/powerpc/boot/dts/fsl/p1010rdb_32b.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/p1010rdb_36b.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/p1010si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/p1020mbg-pc.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/p1020mbg-pc_32b.dts                  | 1 +
 arch/powerpc/boot/dts/fsl/p1020mbg-pc_36b.dts                  | 1 +
 arch/powerpc/boot/dts/fsl/p1020rdb-pc.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/p1020rdb-pc_32b.dts                  | 1 +
 arch/powerpc/boot/dts/fsl/p1020rdb-pc_36b.dts                  | 1 +
 arch/powerpc/boot/dts/fsl/p1020rdb-pd.dts                      | 1 +
 arch/powerpc/boot/dts/fsl/p1020rdb.dtsi                        | 1 +
 arch/powerpc/boot/dts/fsl/p1020si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/p1020si-pre.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/p1020utm-pc.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/p1020utm-pc_32b.dts                  | 1 +
 arch/powerpc/boot/dts/fsl/p1020utm-pc_36b.dts                  | 1 +
 arch/powerpc/boot/dts/fsl/p1021rdb-pc.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/p1021rdb-pc_32b.dts                  | 1 +
 arch/powerpc/boot/dts/fsl/p1021rdb-pc_36b.dts                  | 1 +
 arch/powerpc/boot/dts/fsl/p1021si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/p1021si-pre.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/p1022ds.dtsi                         | 1 +
 arch/powerpc/boot/dts/fsl/p1022ds_32b.dts                      | 1 +
 arch/powerpc/boot/dts/fsl/p1022ds_36b.dts                      | 1 +
 arch/powerpc/boot/dts/fsl/p1022rdk.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/p1022si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/p1022si-pre.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/p1023rdb.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/p1023si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/p1023si-pre.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/p1024rdb.dtsi                        | 1 +
 arch/powerpc/boot/dts/fsl/p1024rdb_32b.dts                     | 1 +
 arch/powerpc/boot/dts/fsl/p1024rdb_36b.dts                     | 1 +
 arch/powerpc/boot/dts/fsl/p1025rdb.dtsi                        | 1 +
 arch/powerpc/boot/dts/fsl/p1025rdb_32b.dts                     | 1 +
 arch/powerpc/boot/dts/fsl/p1025rdb_36b.dts                     | 1 +
 arch/powerpc/boot/dts/fsl/p1025twr.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/p1025twr.dtsi                        | 1 +
 arch/powerpc/boot/dts/fsl/p2020ds.dtsi                         | 1 +
 arch/powerpc/boot/dts/fsl/p2020rdb-pc.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/p2020rdb-pc_32b.dts                  | 1 +
 arch/powerpc/boot/dts/fsl/p2020rdb-pc_36b.dts                  | 1 +
 arch/powerpc/boot/dts/fsl/p2020si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/p2020si-pre.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/p2041rdb.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/p2041si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/p2041si-pre.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/p3041ds.dts                          | 1 +
 arch/powerpc/boot/dts/fsl/p3041si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/p3041si-pre.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/p4080ds.dts                          | 1 +
 arch/powerpc/boot/dts/fsl/p4080si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/p4080si-pre.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/p5020ds.dts                          | 1 +
 arch/powerpc/boot/dts/fsl/p5020si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/p5040ds.dts                          | 1 +
 arch/powerpc/boot/dts/fsl/p5040si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/p5040si-pre.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/pq3-dma-0.dtsi                       | 1 +
 arch/powerpc/boot/dts/fsl/pq3-dma-1.dtsi                       | 1 +
 arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/pq3-esdhc-0.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/pq3-espi-0.dtsi                      | 1 +
 arch/powerpc/boot/dts/fsl/pq3-etsec1-0.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/pq3-etsec1-1.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/pq3-etsec1-2.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/pq3-etsec1-3.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/pq3-etsec1-timer-0.dtsi              | 1 +
 arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-0.dtsi               | 1 +
 arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-1.dtsi               | 1 +
 arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-2.dtsi               | 1 +
 arch/powerpc/boot/dts/fsl/pq3-gpio-0.dtsi                      | 1 +
 arch/powerpc/boot/dts/fsl/pq3-i2c-0.dtsi                       | 1 +
 arch/powerpc/boot/dts/fsl/pq3-i2c-1.dtsi                       | 1 +
 arch/powerpc/boot/dts/fsl/pq3-mpic-message-B.dtsi              | 1 +
 arch/powerpc/boot/dts/fsl/pq3-mpic-timer-B.dtsi                | 1 +
 arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi                        | 1 +
 arch/powerpc/boot/dts/fsl/pq3-rmu-0.dtsi                       | 1 +
 arch/powerpc/boot/dts/fsl/pq3-sata2-0.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/pq3-sata2-1.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/pq3-sec2.1-0.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/pq3-sec3.0-0.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/pq3-sec3.1-0.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/pq3-sec3.3-0.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/pq3-sec4.4-0.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/pq3-usb2-dr-0.dtsi                   | 1 +
 arch/powerpc/boot/dts/fsl/pq3-usb2-dr-1.dtsi                   | 1 +
 arch/powerpc/boot/dts/fsl/qonverge-usb2-dr-0.dtsi              | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-bman1-portals.dtsi             | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-bman1.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-clockgen1.dtsi                 | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-clockgen2.dtsi                 | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-dma-0.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-dma-1.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi                   | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi                   | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-esdhc-0.dtsi                   | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-espi-0.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman-0-10g-0.dtsi              | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-0.dtsi               | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-1.dtsi               | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-2.dtsi               | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-3.dtsi               | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-4.dtsi               | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman-0.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman-1-10g-0.dtsi              | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-0.dtsi               | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-1.dtsi               | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-2.dtsi               | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-3.dtsi               | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-4.dtsi               | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman-1.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi             | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi             | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi              | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi              | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi              | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi              | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi              | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi              | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-0.dtsi                   | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi             | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi             | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi              | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi              | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi              | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi              | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi              | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi              | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3-1.dtsi                   | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi                  | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-gpio-0.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-gpio-1.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-gpio-2.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-gpio-3.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-i2c-0.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-i2c-1.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-mpic.dtsi                      | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-mpic4.3.dtsi                   | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-qman1-portals.dtsi             | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-qman1.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-qman3.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-raid1.0-0.dtsi                 | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-rmu-0.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-sata2-0.dtsi                   | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-sata2-1.dtsi                   | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-sec4.0-0.dtsi                  | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-sec4.2-0.dtsi                  | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-sec5.0-0.dtsi                  | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-sec5.2-0.dtsi                  | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-sec5.3-0.dtsi                  | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-sec6.0-0.dtsi                  | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-usb2-dr-0.dtsi                 | 1 +
 arch/powerpc/boot/dts/fsl/qoriq-usb2-mph-0.dtsi                | 1 +
 arch/powerpc/boot/dts/fsl/t1023rdb.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/t1023si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/t1024qds.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/t1024rdb.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/t1024si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/t102xsi-pre.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/t1040d4rdb.dts                       | 1 +
 arch/powerpc/boot/dts/fsl/t1040qds.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/t1040rdb.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/t1040si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/t1042d4rdb.dts                       | 1 +
 arch/powerpc/boot/dts/fsl/t1042qds.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/t1042rdb.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/t1042rdb_pi.dts                      | 1 +
 arch/powerpc/boot/dts/fsl/t1042si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/t104xd4rdb.dtsi                      | 1 +
 arch/powerpc/boot/dts/fsl/t104xqds.dtsi                        | 1 +
 arch/powerpc/boot/dts/fsl/t104xrdb.dtsi                        | 1 +
 arch/powerpc/boot/dts/fsl/t104xsi-pre.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/t2080qds.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/t2080rdb.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/t2080si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/t2081qds.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/t2081si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/t208xqds.dtsi                        | 1 +
 arch/powerpc/boot/dts/fsl/t208xrdb.dtsi                        | 1 +
 arch/powerpc/boot/dts/fsl/t208xsi-pre.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsl/t4240qds.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/t4240rdb.dts                         | 1 +
 arch/powerpc/boot/dts/fsl/t4240si-post.dtsi                    | 1 +
 arch/powerpc/boot/dts/fsl/t4240si-pre.dtsi                     | 1 +
 arch/powerpc/boot/dts/fsp2.dts                                 | 1 +
 arch/powerpc/boot/dts/glacier.dts                              | 1 +
 arch/powerpc/boot/dts/haleakala.dts                            | 1 +
 arch/powerpc/boot/dts/holly.dts                                | 1 +
 arch/powerpc/boot/dts/hotfoot.dts                              | 1 +
 arch/powerpc/boot/dts/icon.dts                                 | 1 +
 arch/powerpc/boot/dts/iss4xx-mpic.dts                          | 1 +
 arch/powerpc/boot/dts/iss4xx.dts                               | 1 +
 arch/powerpc/boot/dts/katmai.dts                               | 1 +
 arch/powerpc/boot/dts/kilauea.dts                              | 1 +
 arch/powerpc/boot/dts/ksi8560.dts                              | 1 +
 arch/powerpc/boot/dts/kuroboxHD.dts                            | 1 +
 arch/powerpc/boot/dts/kuroboxHG.dts                            | 1 +
 arch/powerpc/boot/dts/makalu.dts                               | 1 +
 arch/powerpc/boot/dts/microwatt.dts                            | 1 +
 arch/powerpc/boot/dts/mvme5100.dts                             | 1 +
 arch/powerpc/boot/dts/obs600.dts                               | 1 +
 arch/powerpc/boot/dts/rainier.dts                              | 1 +
 arch/powerpc/boot/dts/redwood.dts                              | 1 +
 arch/powerpc/boot/dts/sam440ep.dts                             | 1 +
 arch/powerpc/boot/dts/sequoia.dts                              | 1 +
 arch/powerpc/boot/dts/storcenter.dts                           | 1 +
 arch/powerpc/boot/dts/taishan.dts                              | 1 +
 arch/powerpc/boot/dts/warp.dts                                 | 1 +
 arch/powerpc/boot/dts/yosemite.dts                             | 1 +
 271 files changed, 271 insertions(+)

diff --git a/arch/powerpc/boot/dts/acadia.dts b/arch/powerpc/boot/dts/acadia.dts
index deb52e41ab84..be2dde84685b 100644
--- a/arch/powerpc/boot/dts/acadia.dts
+++ b/arch/powerpc/boot/dts/acadia.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for AMCC Acadia (405EZ)
  *
diff --git a/arch/powerpc/boot/dts/akebono.dts b/arch/powerpc/boot/dts/akebono.dts
index df18f8dc4642..c954fd60a409 100644
--- a/arch/powerpc/boot/dts/akebono.dts
+++ b/arch/powerpc/boot/dts/akebono.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for IBM Embedded PPC 476 Platform
  *
diff --git a/arch/powerpc/boot/dts/bamboo.dts b/arch/powerpc/boot/dts/bamboo.dts
index b5861fa3836c..4ef188c4d78a 100644
--- a/arch/powerpc/boot/dts/bamboo.dts
+++ b/arch/powerpc/boot/dts/bamboo.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for AMCC Bamboo
  *
diff --git a/arch/powerpc/boot/dts/canyonlands.dts b/arch/powerpc/boot/dts/canyonlands.dts
index c5fbb08e0a6e..8ab21497c88f 100644
--- a/arch/powerpc/boot/dts/canyonlands.dts
+++ b/arch/powerpc/boot/dts/canyonlands.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for AMCC Canyonlands (460EX)
  *
diff --git a/arch/powerpc/boot/dts/currituck.dts b/arch/powerpc/boot/dts/currituck.dts
index aea8af810106..c92885f43168 100644
--- a/arch/powerpc/boot/dts/currituck.dts
+++ b/arch/powerpc/boot/dts/currituck.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for IBM Embedded PPC 476 Platform
  *
diff --git a/arch/powerpc/boot/dts/ebony.dts b/arch/powerpc/boot/dts/ebony.dts
index 5d11e6ea7405..6b7426662dee 100644
--- a/arch/powerpc/boot/dts/ebony.dts
+++ b/arch/powerpc/boot/dts/ebony.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for IBM Ebony
  *
diff --git a/arch/powerpc/boot/dts/eiger.dts b/arch/powerpc/boot/dts/eiger.dts
index 7a1231d9d6f0..240ca1580d27 100644
--- a/arch/powerpc/boot/dts/eiger.dts
+++ b/arch/powerpc/boot/dts/eiger.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for AMCC (AppliedMicro) Eiger(460SX)
  *
diff --git a/arch/powerpc/boot/dts/fsl/b4420qds.dts b/arch/powerpc/boot/dts/fsl/b4420qds.dts
index cd9203ceedc0..3f3c1a473870 100644
--- a/arch/powerpc/boot/dts/fsl/b4420qds.dts
+++ b/arch/powerpc/boot/dts/fsl/b4420qds.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * B4420DS Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/b4420si-post.dtsi b/arch/powerpc/boot/dts/fsl/b4420si-post.dtsi
index f996cced45e0..cea1cda1fca8 100644
--- a/arch/powerpc/boot/dts/fsl/b4420si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/b4420si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * B4420 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/b4420si-pre.dtsi b/arch/powerpc/boot/dts/fsl/b4420si-pre.dtsi
index bb7b9b9f3f5f..b7875a9bfa76 100644
--- a/arch/powerpc/boot/dts/fsl/b4420si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/b4420si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * B4420 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/b4860qds.dts b/arch/powerpc/boot/dts/fsl/b4860qds.dts
index a8bc419959ca..14740741d536 100644
--- a/arch/powerpc/boot/dts/fsl/b4860qds.dts
+++ b/arch/powerpc/boot/dts/fsl/b4860qds.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * B4860DS Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi b/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
index 868719821106..038754ea721b 100644
--- a/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * B4860 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/b4860si-pre.dtsi b/arch/powerpc/boot/dts/fsl/b4860si-pre.dtsi
index 388ba1b15f8c..f74fee37cba6 100644
--- a/arch/powerpc/boot/dts/fsl/b4860si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/b4860si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * B4860 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/b4qds.dtsi b/arch/powerpc/boot/dts/fsl/b4qds.dtsi
index 05be919f3545..fe8ffd04e093 100644
--- a/arch/powerpc/boot/dts/fsl/b4qds.dtsi
+++ b/arch/powerpc/boot/dts/fsl/b4qds.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * B4420DS Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/b4si-post.dtsi b/arch/powerpc/boot/dts/fsl/b4si-post.dtsi
index 4f044b41a776..0afbee588e11 100644
--- a/arch/powerpc/boot/dts/fsl/b4si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/b4si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * B4420 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/bsc9131rdb.dtsi b/arch/powerpc/boot/dts/fsl/bsc9131rdb.dtsi
index 53f8b956340f..16a48d416a45 100644
--- a/arch/powerpc/boot/dts/fsl/bsc9131rdb.dtsi
+++ b/arch/powerpc/boot/dts/fsl/bsc9131rdb.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * BSC9131 RDB Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/bsc9131si-post.dtsi b/arch/powerpc/boot/dts/fsl/bsc9131si-post.dtsi
index 2a677fd323eb..bd52804eaccb 100644
--- a/arch/powerpc/boot/dts/fsl/bsc9131si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/bsc9131si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * BSC9131 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/bsc9131si-pre.dtsi b/arch/powerpc/boot/dts/fsl/bsc9131si-pre.dtsi
index f6ec4a67560c..9d2cf1f88e58 100644
--- a/arch/powerpc/boot/dts/fsl/bsc9131si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/bsc9131si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * BSC9131 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/bsc9132qds.dtsi b/arch/powerpc/boot/dts/fsl/bsc9132qds.dtsi
index fead484a8180..073728bbf4d0 100644
--- a/arch/powerpc/boot/dts/fsl/bsc9132qds.dtsi
+++ b/arch/powerpc/boot/dts/fsl/bsc9132qds.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * BSC9132 QDS Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/bsc9132si-post.dtsi b/arch/powerpc/boot/dts/fsl/bsc9132si-post.dtsi
index b8e0edd1ac69..66856de15e6a 100644
--- a/arch/powerpc/boot/dts/fsl/bsc9132si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/bsc9132si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * BSC9132 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/bsc9132si-pre.dtsi b/arch/powerpc/boot/dts/fsl/bsc9132si-pre.dtsi
index 90f7949fe312..22020acaecfa 100644
--- a/arch/powerpc/boot/dts/fsl/bsc9132si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/bsc9132si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * BSC9132 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/c293pcie.dts b/arch/powerpc/boot/dts/fsl/c293pcie.dts
index 5e905e0857cf..490a2a5ffc2b 100644
--- a/arch/powerpc/boot/dts/fsl/c293pcie.dts
+++ b/arch/powerpc/boot/dts/fsl/c293pcie.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * C293 PCIE Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/c293si-post.dtsi b/arch/powerpc/boot/dts/fsl/c293si-post.dtsi
index bec0fc36849d..f376539d75b6 100644
--- a/arch/powerpc/boot/dts/fsl/c293si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/c293si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * C293 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/c293si-pre.dtsi b/arch/powerpc/boot/dts/fsl/c293si-pre.dtsi
index 065049d76245..2c65cf36f552 100644
--- a/arch/powerpc/boot/dts/fsl/c293si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/c293si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * C293 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/e500mc_power_isa.dtsi b/arch/powerpc/boot/dts/fsl/e500mc_power_isa.dtsi
index ea145c91cfbd..9f61da5cfa21 100644
--- a/arch/powerpc/boot/dts/fsl/e500mc_power_isa.dtsi
+++ b/arch/powerpc/boot/dts/fsl/e500mc_power_isa.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * e500mc Power ISA Device Tree Source (include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/e500v2_power_isa.dtsi b/arch/powerpc/boot/dts/fsl/e500v2_power_isa.dtsi
index f4928144d2c8..44e586701abb 100644
--- a/arch/powerpc/boot/dts/fsl/e500v2_power_isa.dtsi
+++ b/arch/powerpc/boot/dts/fsl/e500v2_power_isa.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * e500v2 Power ISA Device Tree Source (include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/e5500_power_isa.dtsi b/arch/powerpc/boot/dts/fsl/e5500_power_isa.dtsi
index c254c981ae87..0f3417a9d42a 100644
--- a/arch/powerpc/boot/dts/fsl/e5500_power_isa.dtsi
+++ b/arch/powerpc/boot/dts/fsl/e5500_power_isa.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * e5500 Power ISA Device Tree Source (include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/e6500_power_isa.dtsi b/arch/powerpc/boot/dts/fsl/e6500_power_isa.dtsi
index a912dbeff359..ea0e20f28815 100644
--- a/arch/powerpc/boot/dts/fsl/e6500_power_isa.dtsi
+++ b/arch/powerpc/boot/dts/fsl/e6500_power_isa.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * e6500 Power ISA Device Tree Source (include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/elo3-dma-0.dtsi b/arch/powerpc/boot/dts/fsl/elo3-dma-0.dtsi
index 3c210e0d5201..2203e3bad68d 100644
--- a/arch/powerpc/boot/dts/fsl/elo3-dma-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/elo3-dma-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ Elo3 DMA device tree stub [ controller @ offset 0x100000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/elo3-dma-1.dtsi b/arch/powerpc/boot/dts/fsl/elo3-dma-1.dtsi
index cccf3bb38224..1a68db032f5f 100644
--- a/arch/powerpc/boot/dts/fsl/elo3-dma-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/elo3-dma-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ Elo3 DMA device tree stub [ controller @ offset 0x101000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/elo3-dma-2.dtsi b/arch/powerpc/boot/dts/fsl/elo3-dma-2.dtsi
index d3cc8d0f7c25..8caa4e3857c7 100644
--- a/arch/powerpc/boot/dts/fsl/elo3-dma-2.dtsi
+++ b/arch/powerpc/boot/dts/fsl/elo3-dma-2.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ Elo3 DMA device tree stub [ controller @ offset 0x102300 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/interlaken-lac-portals.dtsi b/arch/powerpc/boot/dts/fsl/interlaken-lac-portals.dtsi
index 9cffccf4e07e..4036daa59750 100644
--- a/arch/powerpc/boot/dts/fsl/interlaken-lac-portals.dtsi
+++ b/arch/powerpc/boot/dts/fsl/interlaken-lac-portals.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /* T4240 Interlaken LAC Portal device tree stub with 24 portals.
  *
  * Copyright 2012 Freescale Semiconductor Inc.
diff --git a/arch/powerpc/boot/dts/fsl/interlaken-lac.dtsi b/arch/powerpc/boot/dts/fsl/interlaken-lac.dtsi
index e8208720ac0e..f1501488d163 100644
--- a/arch/powerpc/boot/dts/fsl/interlaken-lac.dtsi
+++ b/arch/powerpc/boot/dts/fsl/interlaken-lac.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T4 Interlaken Look-aside Controller (LAC) device tree stub
  *
diff --git a/arch/powerpc/boot/dts/fsl/mpc8536ds.dtsi b/arch/powerpc/boot/dts/fsl/mpc8536ds.dtsi
index a925fe49a73e..042677f91990 100644
--- a/arch/powerpc/boot/dts/fsl/mpc8536ds.dtsi
+++ b/arch/powerpc/boot/dts/fsl/mpc8536ds.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * MPC8536DS Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi
index 41935709ebe8..0404159fc3fb 100644
--- a/arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * MPC8536 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/mpc8536si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8536si-pre.dtsi
index 152906f98a0f..a74d7c8d2b64 100644
--- a/arch/powerpc/boot/dts/fsl/mpc8536si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/mpc8536si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * MPC8536 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/mpc8544ds.dtsi b/arch/powerpc/boot/dts/fsl/mpc8544ds.dtsi
index 47d986b041f6..3d918595240d 100644
--- a/arch/powerpc/boot/dts/fsl/mpc8544ds.dtsi
+++ b/arch/powerpc/boot/dts/fsl/mpc8544ds.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * MPC8544DS Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/mpc8544si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8544si-post.dtsi
index b68eb119faef..dd78b38ddcdc 100644
--- a/arch/powerpc/boot/dts/fsl/mpc8544si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/mpc8544si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * MPC8544 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/mpc8544si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8544si-pre.dtsi
index 5a69bafb652a..1981a72903bc 100644
--- a/arch/powerpc/boot/dts/fsl/mpc8544si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/mpc8544si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * MPC8544 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/mpc8548cds.dtsi b/arch/powerpc/boot/dts/fsl/mpc8548cds.dtsi
index 3bc7d4711220..78005236559b 100644
--- a/arch/powerpc/boot/dts/fsl/mpc8548cds.dtsi
+++ b/arch/powerpc/boot/dts/fsl/mpc8548cds.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * MPC8548CDS Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/mpc8548si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8548si-post.dtsi
index 579d76cb8e32..c416b9ef1dc8 100644
--- a/arch/powerpc/boot/dts/fsl/mpc8548si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/mpc8548si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * MPC8548 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/mpc8548si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8548si-pre.dtsi
index fc1ce977422b..f1c1963061bf 100644
--- a/arch/powerpc/boot/dts/fsl/mpc8548si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/mpc8548si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * MPC8548 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/mpc8568si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8568si-post.dtsi
index 64e7075a9cd4..379384155e7e 100644
--- a/arch/powerpc/boot/dts/fsl/mpc8568si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/mpc8568si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * MPC8568 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/mpc8568si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8568si-pre.dtsi
index 122ca3bd0b03..913d27c3099e 100644
--- a/arch/powerpc/boot/dts/fsl/mpc8568si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/mpc8568si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * MPC8568 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/mpc8569si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8569si-post.dtsi
index 3e6346a4a183..b71cff3cac3a 100644
--- a/arch/powerpc/boot/dts/fsl/mpc8569si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/mpc8569si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * MPC8569 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/mpc8569si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8569si-pre.dtsi
index 2cd15a2a0422..8df9f1ef7e3c 100644
--- a/arch/powerpc/boot/dts/fsl/mpc8569si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/mpc8569si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * MPC8569 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/mpc8572ds.dtsi b/arch/powerpc/boot/dts/fsl/mpc8572ds.dtsi
index 357490bb84da..57fb76231125 100644
--- a/arch/powerpc/boot/dts/fsl/mpc8572ds.dtsi
+++ b/arch/powerpc/boot/dts/fsl/mpc8572ds.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * MPC8572DS Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/mpc8572si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8572si-post.dtsi
index 49294cf36b4e..4a6e2d6ec2f2 100644
--- a/arch/powerpc/boot/dts/fsl/mpc8572si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/mpc8572si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * MPC8572 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/mpc8572si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8572si-pre.dtsi
index 28c2a862be96..e2e71f8b8eac 100644
--- a/arch/powerpc/boot/dts/fsl/mpc8572si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/mpc8572si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * MPC8572 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/oca4080.dts b/arch/powerpc/boot/dts/fsl/oca4080.dts
index 17bc6f391248..159ed656121e 100644
--- a/arch/powerpc/boot/dts/fsl/oca4080.dts
+++ b/arch/powerpc/boot/dts/fsl/oca4080.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * OCA4080 Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1010rdb-pa.dtsi b/arch/powerpc/boot/dts/fsl/p1010rdb-pa.dtsi
index 434fb2d58575..13ac23673573 100644
--- a/arch/powerpc/boot/dts/fsl/p1010rdb-pa.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1010rdb-pa.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1010 RDB Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1010rdb-pa_36b.dts b/arch/powerpc/boot/dts/fsl/p1010rdb-pa_36b.dts
index 03bd76ca8406..cb998a4ec54e 100644
--- a/arch/powerpc/boot/dts/fsl/p1010rdb-pa_36b.dts
+++ b/arch/powerpc/boot/dts/fsl/p1010rdb-pa_36b.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1010 RDB Device Tree Source (36-bit address map)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1010rdb-pb_36b.dts b/arch/powerpc/boot/dts/fsl/p1010rdb-pb_36b.dts
index 4cf255fedc96..1b0223708201 100644
--- a/arch/powerpc/boot/dts/fsl/p1010rdb-pb_36b.dts
+++ b/arch/powerpc/boot/dts/fsl/p1010rdb-pb_36b.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1010 RDB Device Tree Source (36-bit address map)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1010rdb.dtsi b/arch/powerpc/boot/dts/fsl/p1010rdb.dtsi
index 2ca9cee2ddeb..fdaaaf7f059d 100644
--- a/arch/powerpc/boot/dts/fsl/p1010rdb.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1010rdb.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1010 RDB Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1010rdb_32b.dtsi b/arch/powerpc/boot/dts/fsl/p1010rdb_32b.dtsi
index fdc19aab2f70..627d4fa34a51 100644
--- a/arch/powerpc/boot/dts/fsl/p1010rdb_32b.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1010rdb_32b.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1010 RDB Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1010rdb_36b.dtsi b/arch/powerpc/boot/dts/fsl/p1010rdb_36b.dtsi
index de2fceed4f79..3ca33db99ec5 100644
--- a/arch/powerpc/boot/dts/fsl/p1010rdb_36b.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1010rdb_36b.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1010 RDB Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1010si-post.dtsi b/arch/powerpc/boot/dts/fsl/p1010si-post.dtsi
index ccda0a91abf0..698f3cfa56d7 100644
--- a/arch/powerpc/boot/dts/fsl/p1010si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1010si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1010/P1014 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi
index 6e76f9b282a1..8d00f44d48ed 100644
--- a/arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1010/P1014 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1020mbg-pc.dtsi b/arch/powerpc/boot/dts/fsl/p1020mbg-pc.dtsi
index a24699cfea9c..b407d56dab5f 100644
--- a/arch/powerpc/boot/dts/fsl/p1020mbg-pc.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1020mbg-pc.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1020 MBG-PC Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1020mbg-pc_32b.dts b/arch/powerpc/boot/dts/fsl/p1020mbg-pc_32b.dts
index b29d1fcb5e6b..ff1bfd59c08a 100644
--- a/arch/powerpc/boot/dts/fsl/p1020mbg-pc_32b.dts
+++ b/arch/powerpc/boot/dts/fsl/p1020mbg-pc_32b.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1020 MBG-PC Device Tree Source (32-bit address map)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1020mbg-pc_36b.dts b/arch/powerpc/boot/dts/fsl/p1020mbg-pc_36b.dts
index 678d0eec24e2..db7fe03308f5 100644
--- a/arch/powerpc/boot/dts/fsl/p1020mbg-pc_36b.dts
+++ b/arch/powerpc/boot/dts/fsl/p1020mbg-pc_36b.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1020 MBG-PC Device Tree Source (36-bit address map)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1020rdb-pc.dtsi b/arch/powerpc/boot/dts/fsl/p1020rdb-pc.dtsi
index a13876c05c1e..3303c0390b17 100644
--- a/arch/powerpc/boot/dts/fsl/p1020rdb-pc.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1020rdb-pc.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1020 RDB-PC Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1020rdb-pc_32b.dts b/arch/powerpc/boot/dts/fsl/p1020rdb-pc_32b.dts
index 8175bf6f3e9c..f23a7b4d11c6 100644
--- a/arch/powerpc/boot/dts/fsl/p1020rdb-pc_32b.dts
+++ b/arch/powerpc/boot/dts/fsl/p1020rdb-pc_32b.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1020 RDB-PC Device Tree Source (32-bit address map)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1020rdb-pc_36b.dts b/arch/powerpc/boot/dts/fsl/p1020rdb-pc_36b.dts
index 01c305795163..d1f00d3ffd2b 100644
--- a/arch/powerpc/boot/dts/fsl/p1020rdb-pc_36b.dts
+++ b/arch/powerpc/boot/dts/fsl/p1020rdb-pc_36b.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1020 RDB-PC Device Tree Source (36-bit address map)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1020rdb-pd.dts b/arch/powerpc/boot/dts/fsl/p1020rdb-pd.dts
index f2dc6c09be52..d10daf47fcfa 100644
--- a/arch/powerpc/boot/dts/fsl/p1020rdb-pd.dts
+++ b/arch/powerpc/boot/dts/fsl/p1020rdb-pd.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1020 RDB-PD Device Tree Source (32-bit address map)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1020rdb.dtsi b/arch/powerpc/boot/dts/fsl/p1020rdb.dtsi
index 703142ee6627..ddb98ff961d1 100644
--- a/arch/powerpc/boot/dts/fsl/p1020rdb.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1020rdb.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1020 RDB Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1020si-post.dtsi b/arch/powerpc/boot/dts/fsl/p1020si-post.dtsi
index 642dc3a83d0e..d86e78ea8d74 100644
--- a/arch/powerpc/boot/dts/fsl/p1020si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1020si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1020/P1011 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1020si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p1020si-pre.dtsi
index fed9c4c8d962..4dd473387072 100644
--- a/arch/powerpc/boot/dts/fsl/p1020si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1020si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1020/P1011 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1020utm-pc.dtsi b/arch/powerpc/boot/dts/fsl/p1020utm-pc.dtsi
index 7ea85eabcc5c..6747305b7b3b 100644
--- a/arch/powerpc/boot/dts/fsl/p1020utm-pc.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1020utm-pc.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1020 UTM-PC Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1020utm-pc_32b.dts b/arch/powerpc/boot/dts/fsl/p1020utm-pc_32b.dts
index bc03ef611f98..a26da1065bd3 100644
--- a/arch/powerpc/boot/dts/fsl/p1020utm-pc_32b.dts
+++ b/arch/powerpc/boot/dts/fsl/p1020utm-pc_32b.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1020 UTM-PC Device Tree Source (32-bit address map)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1020utm-pc_36b.dts b/arch/powerpc/boot/dts/fsl/p1020utm-pc_36b.dts
index 32766f6a475e..240fe83373ef 100644
--- a/arch/powerpc/boot/dts/fsl/p1020utm-pc_36b.dts
+++ b/arch/powerpc/boot/dts/fsl/p1020utm-pc_36b.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1020 UTM-PC Device Tree Source (36-bit address map)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1021rdb-pc.dtsi b/arch/powerpc/boot/dts/fsl/p1021rdb-pc.dtsi
index 18f9b31602d0..fe95e9075ede 100644
--- a/arch/powerpc/boot/dts/fsl/p1021rdb-pc.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1021rdb-pc.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1021 RDB Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1021rdb-pc_32b.dts b/arch/powerpc/boot/dts/fsl/p1021rdb-pc_32b.dts
index d2b4710357ac..7ba0588987ba 100644
--- a/arch/powerpc/boot/dts/fsl/p1021rdb-pc_32b.dts
+++ b/arch/powerpc/boot/dts/fsl/p1021rdb-pc_32b.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1021 RDB Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1021rdb-pc_36b.dts b/arch/powerpc/boot/dts/fsl/p1021rdb-pc_36b.dts
index e298c29e5606..2d207b17fc6d 100644
--- a/arch/powerpc/boot/dts/fsl/p1021rdb-pc_36b.dts
+++ b/arch/powerpc/boot/dts/fsl/p1021rdb-pc_36b.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1021 RDB Device Tree Source (36-bit address map)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1021si-post.dtsi b/arch/powerpc/boot/dts/fsl/p1021si-post.dtsi
index 407cb5fd0f5b..1912256d9d8d 100644
--- a/arch/powerpc/boot/dts/fsl/p1021si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1021si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1021/P1012 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1021si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p1021si-pre.dtsi
index 36161b500176..6a649de648ee 100644
--- a/arch/powerpc/boot/dts/fsl/p1021si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1021si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1021/P1012 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1022ds.dtsi b/arch/powerpc/boot/dts/fsl/p1022ds.dtsi
index ddefbf64f7f8..620817fbb2ad 100644
--- a/arch/powerpc/boot/dts/fsl/p1022ds.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1022ds.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1022 DS Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1022ds_32b.dts b/arch/powerpc/boot/dts/fsl/p1022ds_32b.dts
index 5a7eaceb9e8e..cf2164b8c3a9 100644
--- a/arch/powerpc/boot/dts/fsl/p1022ds_32b.dts
+++ b/arch/powerpc/boot/dts/fsl/p1022ds_32b.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1022 DS 32-bit Physical Address Map Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1022ds_36b.dts b/arch/powerpc/boot/dts/fsl/p1022ds_36b.dts
index 88063cd9e20a..92f264f02123 100644
--- a/arch/powerpc/boot/dts/fsl/p1022ds_36b.dts
+++ b/arch/powerpc/boot/dts/fsl/p1022ds_36b.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1022 DS 36-bit Physical Address Map Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1022rdk.dts b/arch/powerpc/boot/dts/fsl/p1022rdk.dts
index 29e8af1e3711..964670d45204 100644
--- a/arch/powerpc/boot/dts/fsl/p1022rdk.dts
+++ b/arch/powerpc/boot/dts/fsl/p1022rdk.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1022 RDK 32-bit Physical Address Map Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1022si-post.dtsi b/arch/powerpc/boot/dts/fsl/p1022si-post.dtsi
index 5f51b7bfc064..83659cde0a13 100644
--- a/arch/powerpc/boot/dts/fsl/p1022si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1022si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1022/P1013 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1022si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p1022si-pre.dtsi
index de76ae8992c6..5c77f25630fb 100644
--- a/arch/powerpc/boot/dts/fsl/p1022si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1022si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1022/P1013 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1023rdb.dts b/arch/powerpc/boot/dts/fsl/p1023rdb.dts
index ead928364beb..4957a2bc0d06 100644
--- a/arch/powerpc/boot/dts/fsl/p1023rdb.dts
+++ b/arch/powerpc/boot/dts/fsl/p1023rdb.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1023 RDB Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1023si-post.dtsi b/arch/powerpc/boot/dts/fsl/p1023si-post.dtsi
index da6d3fc6ba41..68ee594a692e 100644
--- a/arch/powerpc/boot/dts/fsl/p1023si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1023si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1023/P1017 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1023si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p1023si-pre.dtsi
index 132a1521921a..064477a6e960 100644
--- a/arch/powerpc/boot/dts/fsl/p1023si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1023si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1023/P1017 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1024rdb.dtsi b/arch/powerpc/boot/dts/fsl/p1024rdb.dtsi
index b4d05867f707..2147273945e6 100644
--- a/arch/powerpc/boot/dts/fsl/p1024rdb.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1024rdb.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1024 RDB Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1024rdb_32b.dts b/arch/powerpc/boot/dts/fsl/p1024rdb_32b.dts
index 8b09b9d56ad1..362e2c249959 100644
--- a/arch/powerpc/boot/dts/fsl/p1024rdb_32b.dts
+++ b/arch/powerpc/boot/dts/fsl/p1024rdb_32b.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1024 RDB 32Bit Physical Address Map Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1024rdb_36b.dts b/arch/powerpc/boot/dts/fsl/p1024rdb_36b.dts
index e7093aef28f1..3ff6d949ec3a 100644
--- a/arch/powerpc/boot/dts/fsl/p1024rdb_36b.dts
+++ b/arch/powerpc/boot/dts/fsl/p1024rdb_36b.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1024 RDB 36Bit Physical Address Map Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1025rdb.dtsi b/arch/powerpc/boot/dts/fsl/p1025rdb.dtsi
index 0a5434a631c3..c8a86c19ae75 100644
--- a/arch/powerpc/boot/dts/fsl/p1025rdb.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1025rdb.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1025 RDB Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1025rdb_32b.dts b/arch/powerpc/boot/dts/fsl/p1025rdb_32b.dts
index ea33b57f8774..6edefe7d92fe 100644
--- a/arch/powerpc/boot/dts/fsl/p1025rdb_32b.dts
+++ b/arch/powerpc/boot/dts/fsl/p1025rdb_32b.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1025 RDB Device Tree Source (32-bit address map)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1025rdb_36b.dts b/arch/powerpc/boot/dts/fsl/p1025rdb_36b.dts
index b0ded5e8bd0b..a4a3428f4f59 100644
--- a/arch/powerpc/boot/dts/fsl/p1025rdb_36b.dts
+++ b/arch/powerpc/boot/dts/fsl/p1025rdb_36b.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1025 RDB Device Tree Source (36-bit address map)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1025twr.dts b/arch/powerpc/boot/dts/fsl/p1025twr.dts
index 9b8863b74b60..260ac1821dcd 100644
--- a/arch/powerpc/boot/dts/fsl/p1025twr.dts
+++ b/arch/powerpc/boot/dts/fsl/p1025twr.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1025 TWR Device Tree Source (32-bit address map)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p1025twr.dtsi b/arch/powerpc/boot/dts/fsl/p1025twr.dtsi
index ab75b8f29ae2..45248be5d3bc 100644
--- a/arch/powerpc/boot/dts/fsl/p1025twr.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1025twr.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1025 TWR Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p2020ds.dtsi b/arch/powerpc/boot/dts/fsl/p2020ds.dtsi
index e699cf95b063..f25047a4290e 100644
--- a/arch/powerpc/boot/dts/fsl/p2020ds.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p2020ds.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P2020DS Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p2020rdb-pc.dtsi b/arch/powerpc/boot/dts/fsl/p2020rdb-pc.dtsi
index 03c9afc82436..ddc0f2acc36e 100644
--- a/arch/powerpc/boot/dts/fsl/p2020rdb-pc.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p2020rdb-pc.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P2020 RDB-PC Device Tree Source stub (no addresses or top-level ranges)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p2020rdb-pc_32b.dts b/arch/powerpc/boot/dts/fsl/p2020rdb-pc_32b.dts
index d3295c204bbf..f1b18870a4a4 100644
--- a/arch/powerpc/boot/dts/fsl/p2020rdb-pc_32b.dts
+++ b/arch/powerpc/boot/dts/fsl/p2020rdb-pc_32b.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P2020 RDB-PC 32Bit Physical Address Map Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/p2020rdb-pc_36b.dts b/arch/powerpc/boot/dts/fsl/p2020rdb-pc_36b.dts
index 9307a8f41ddb..2a09bdefdcef 100644
--- a/arch/powerpc/boot/dts/fsl/p2020rdb-pc_36b.dts
+++ b/arch/powerpc/boot/dts/fsl/p2020rdb-pc_36b.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P2020 RDB-PC 36Bit Physical Address Map Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/p2020si-post.dtsi b/arch/powerpc/boot/dts/fsl/p2020si-post.dtsi
index 884e01bcb243..ae4ae0cf1744 100644
--- a/arch/powerpc/boot/dts/fsl/p2020si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p2020si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P2020/P2010 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p2020si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p2020si-pre.dtsi
index 42bf3c6d25ca..78cc7f5ee516 100644
--- a/arch/powerpc/boot/dts/fsl/p2020si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p2020si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P2020/P2010 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p2041rdb.dts b/arch/powerpc/boot/dts/fsl/p2041rdb.dts
index 950816b9d6e1..bdb39c984d20 100644
--- a/arch/powerpc/boot/dts/fsl/p2041rdb.dts
+++ b/arch/powerpc/boot/dts/fsl/p2041rdb.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P2041RDB Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/p2041si-post.dtsi b/arch/powerpc/boot/dts/fsl/p2041si-post.dtsi
index ddc018d42252..e40a5335d830 100644
--- a/arch/powerpc/boot/dts/fsl/p2041si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p2041si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P2041/P2040 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p2041si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p2041si-pre.dtsi
index 6318962e8d14..810ea872c8de 100644
--- a/arch/powerpc/boot/dts/fsl/p2041si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p2041si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P2041 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p3041ds.dts b/arch/powerpc/boot/dts/fsl/p3041ds.dts
index 6f5f7283c533..f8fd2036eb76 100644
--- a/arch/powerpc/boot/dts/fsl/p3041ds.dts
+++ b/arch/powerpc/boot/dts/fsl/p3041ds.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P3041DS Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/p3041si-post.dtsi b/arch/powerpc/boot/dts/fsl/p3041si-post.dtsi
index 81bc75aca2e0..2bf67ef08ebb 100644
--- a/arch/powerpc/boot/dts/fsl/p3041si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p3041si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P3041 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p3041si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p3041si-pre.dtsi
index db92f1151a48..579e5eca6b15 100644
--- a/arch/powerpc/boot/dts/fsl/p3041si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p3041si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P3041 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p4080ds.dts b/arch/powerpc/boot/dts/fsl/p4080ds.dts
index 969b32c4f2d5..a21480f37a6d 100644
--- a/arch/powerpc/boot/dts/fsl/p4080ds.dts
+++ b/arch/powerpc/boot/dts/fsl/p4080ds.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P4080DS Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/p4080si-post.dtsi b/arch/powerpc/boot/dts/fsl/p4080si-post.dtsi
index 4da49b6dd3f5..3e6633c42c55 100644
--- a/arch/powerpc/boot/dts/fsl/p4080si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p4080si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P4080/P4040 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p4080si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p4080si-pre.dtsi
index 0a7c65a00e5e..7ff4e7752ca8 100644
--- a/arch/powerpc/boot/dts/fsl/p4080si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p4080si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P4080/P4040 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p5020ds.dts b/arch/powerpc/boot/dts/fsl/p5020ds.dts
index b24adf902d8d..493a2490d2bf 100644
--- a/arch/powerpc/boot/dts/fsl/p5020ds.dts
+++ b/arch/powerpc/boot/dts/fsl/p5020ds.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P5020DS Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/p5020si-post.dtsi b/arch/powerpc/boot/dts/fsl/p5020si-post.dtsi
index cd008cdd2889..e358a0c61324 100644
--- a/arch/powerpc/boot/dts/fsl/p5020si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p5020si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P5020/5010 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi
index 2d74ea85e5df..f7524a9190be 100644
--- a/arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P5020/P5010 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p5040ds.dts b/arch/powerpc/boot/dts/fsl/p5040ds.dts
index 30850b3228e0..ecdb2e208774 100644
--- a/arch/powerpc/boot/dts/fsl/p5040ds.dts
+++ b/arch/powerpc/boot/dts/fsl/p5040ds.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P5040DS Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/p5040si-post.dtsi b/arch/powerpc/boot/dts/fsl/p5040si-post.dtsi
index 16b454b504e2..742d31d06f40 100644
--- a/arch/powerpc/boot/dts/fsl/p5040si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p5040si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P5040 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/p5040si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p5040si-pre.dtsi
index ed89dbbdacf0..ef5a5c7bad3b 100644
--- a/arch/powerpc/boot/dts/fsl/p5040si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p5040si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P5040 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-dma-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-dma-0.dtsi
index b5b37ad30e75..c3e559e0d1cb 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-dma-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-dma-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 DMA device tree stub [ controller @ offset 0x21000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-dma-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-dma-1.dtsi
index 28cb8a55d807..fab464a61928 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-dma-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-dma-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 DMA device tree stub [ controller @ offset 0xc300 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi
index 5e268fdb9d1f..dab33fa7e2ba 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 DUART device tree stub [ controller @ offset 0x4000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-esdhc-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-esdhc-0.dtsi
index 5743433e278e..8d688967fb6d 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-esdhc-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-esdhc-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 eSDHC device tree stub [ controller @ offset 0x2e000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-espi-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-espi-0.dtsi
index 75854b2e0391..5d4ef3d01661 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-espi-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-espi-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 eSPI device tree stub [ controller @ offset 0x7000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec1-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec1-0.dtsi
index 3b0650a98478..20789d1c50b1 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-etsec1-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-etsec1-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 eTSEC device tree stub [ @ offsets 0x24000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec1-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec1-1.dtsi
index 96693b41f0f1..3e6390831a48 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-etsec1-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-etsec1-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 eTSEC device tree stub [ @ offsets 0x25000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec1-2.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec1-2.dtsi
index 6b3fab19da1f..8878db624174 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-etsec1-2.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-etsec1-2.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 eTSEC device tree stub [ @ offsets 0x26000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec1-3.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec1-3.dtsi
index 0da592d93ddd..6d2062bff215 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-etsec1-3.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-etsec1-3.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 eTSEC device tree stub [ @ offsets 0x27000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec1-timer-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec1-timer-0.dtsi
index efe2ca04bce8..cbeca0dbc97d 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-etsec1-timer-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-etsec1-timer-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 eTSEC Timer (IEEE 1588) device tree stub [ @ offsets 0x24e00 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi
index 7fcb1ac0f232..b006be0660ad 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 eTSEC2 device tree stub [ @ offsets 0x24000/0xb0000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi
index 9f25427c1527..7ef3fbc41ea7 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 eTSEC2 device tree stub [ @ offsets 0x25000/0xb1000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi
index cd7c318ab131..6123f370cf46 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 eTSEC2 device tree stub [ @ offsets 0x26000/0xb2000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-0.dtsi
index 034ab8fac22f..d32eca7737d8 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 eTSEC2 Group 2 device tree stub [ @ offsets 0xb4000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-1.dtsi
index 3be9ba3b374e..ab61bda3e80c 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 eTSEC2 Group 2 device tree stub [ @ offsets 0xb5000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-2.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-2.dtsi
index 02a33457048c..dd6976472fe4 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-2.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-2.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 eTSEC2 Group 2 device tree stub [ @ offsets 0xb6000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-gpio-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-gpio-0.dtsi
index a1b48546b02d..93cd7dc63a16 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-gpio-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-gpio-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 GPIO device tree stub [ controller @ offset 0xfc00 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-i2c-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-i2c-0.dtsi
index d1dd6fb82a78..0f307cb69407 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-i2c-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-i2c-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 I2C device tree stub [ controller @ offset 0x3000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-i2c-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-i2c-1.dtsi
index a9bd803e2090..79b2471f143a 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-i2c-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-i2c-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 I2C device tree stub [ controller @ offset 0x3100 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-mpic-message-B.dtsi b/arch/powerpc/boot/dts/fsl/pq3-mpic-message-B.dtsi
index 1cf0b77b1efe..6c151a215d12 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-mpic-message-B.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-mpic-message-B.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 MPIC Message (Group B) device tree stub [ controller @ offset 0x42400 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-mpic-timer-B.dtsi b/arch/powerpc/boot/dts/fsl/pq3-mpic-timer-B.dtsi
index 8734cffae1a1..a18e7f0d29e2 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-mpic-timer-B.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-mpic-timer-B.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 MPIC Timer (Group B) device tree stub [ controller @ offset 0x42100 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi b/arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi
index 71c30eb10056..457089cbe5aa 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 MPIC device tree stub [ controller @ offset 0x40000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-rmu-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-rmu-0.dtsi
index 587ca9ffad7d..0d9708b43ba4 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-rmu-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-rmu-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 RIO Message Unit device tree stub [ controller @ offset 0xd3000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-sata2-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sata2-0.dtsi
index 3c28dd08d38b..ca3caef2ea22 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-sata2-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-sata2-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 SATAv2 device tree stub [ controller @ offset 0x18000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-sata2-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sata2-1.dtsi
index eefaf2855e3b..3d8d1128ff2f 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-sata2-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-sata2-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 SATAv2 device tree stub [ controller @ offset 0x19000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-sec2.1-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sec2.1-0.dtsi
index 02a5c7ae72d0..391393afdab6 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-sec2.1-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-sec2.1-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 Sec/Crypto 2.1 device tree stub [ controller @ offset 0x30000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-sec3.0-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sec3.0-0.dtsi
index bba1ba44ccf0..0368b7e4da8e 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-sec3.0-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-sec3.0-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 Sec/Crypto 3.0 device tree stub [ controller @ offset 0x30000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-sec3.1-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sec3.1-0.dtsi
index 8f0a5669bee5..42cca936ba14 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-sec3.1-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-sec3.1-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 Sec/Crypto 3.1 device tree stub [ controller @ offset 0x30000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-sec3.3-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sec3.3-0.dtsi
index c227f2748a24..6374712a2631 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-sec3.3-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-sec3.3-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 Sec/Crypto 3.3 device tree stub [ controller @ offset 0x30000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-sec4.4-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sec4.4-0.dtsi
index bb3d8266b5ce..f19aac7f9b34 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-sec4.4-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-sec4.4-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 Sec/Crypto 4.4 device tree stub [ controller @ offset 0x30000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-usb2-dr-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-usb2-dr-0.dtsi
index 185ab9dc3ecd..59d435e7df1c 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-usb2-dr-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-usb2-dr-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 USB DR device tree stub [ controller @ offset 0x22000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/pq3-usb2-dr-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-usb2-dr-1.dtsi
index fe24cd612fff..2c45c3849726 100644
--- a/arch/powerpc/boot/dts/fsl/pq3-usb2-dr-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/pq3-usb2-dr-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PQ3 USB DR device tree stub [ controller @ offset 0x23000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qonverge-usb2-dr-0.dtsi b/arch/powerpc/boot/dts/fsl/qonverge-usb2-dr-0.dtsi
index fcc7e5b7fd47..960e29f41761 100644
--- a/arch/powerpc/boot/dts/fsl/qonverge-usb2-dr-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qonverge-usb2-dr-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ Qonverge USB Host device tree stub [ controller @ offset 0x210000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-bman1-portals.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-bman1-portals.dtsi
index 5022432ebaa9..1beb701e1994 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-bman1-portals.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-bman1-portals.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ BMan Portal device tree stub for 10 portals
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-bman1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-bman1.dtsi
index 3b5e3504acb7..848ebe59cea0 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-bman1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-bman1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ BMan device tree stub [ controller @ offset 0x31a000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-clockgen1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-clockgen1.dtsi
index 463c1ed9ffdd..05d38714252b 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-clockgen1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-clockgen1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ clock control device tree stub [ controller @ offset 0xe1000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-clockgen2.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-clockgen2.dtsi
index 0361050bb56a..ebdd84ce806b 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-clockgen2.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-clockgen2.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ clock control device tree stub [ controller @ offset 0xe1000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-dma-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-dma-0.dtsi
index 1aebf3ea4ca5..91761665e298 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-dma-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-dma-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ DMA device tree stub [ controller @ offset 0x100000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-dma-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-dma-1.dtsi
index ecf5e180fe79..5509a5a8427e 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-dma-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-dma-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ DMA device tree stub [ controller @ offset 0x101000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi
index 225c07b4e8ab..f6517e3cb9aa 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ DUART device tree stub [ controller @ offset 0x11c000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi
index d23233a56b91..dd15dd44b93c 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ DUART device tree stub [ controller @ offset 0x11d000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-esdhc-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-esdhc-0.dtsi
index 20835ae216c7..6d90fe9b5268 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-esdhc-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-esdhc-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ eSDHC device tree stub [ controller @ offset 0x114000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-espi-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-espi-0.dtsi
index 6db06975e095..a24a2e674e90 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-espi-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-espi-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ eSPI device tree stub [ controller @ offset 0x110000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman-0-10g-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman-0-10g-0.dtsi
index eb77675c255a..58e25b49a577 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman-0-10g-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman-0-10g-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan 10g port #0 device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-0.dtsi
index b965bc219bae..f35f80fbcc30 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan 1g port #0 device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-1.dtsi
index 9eb6e6dd7cf9..df74208fae84 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan 1g port #1 device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-2.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-2.dtsi
index 092b89936743..77be1e9bcfd6 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-2.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-2.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan 1g port #2 device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-3.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-3.dtsi
index 2df0dc876045..32f9a75c99b5 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-3.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-3.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan 1g port #3 device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-4.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-4.dtsi
index 5fceb2438fdc..71952f51a8ad 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-4.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman-0-1g-4.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan 1g port #4 device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman-0.dtsi
index 9b6cf9149937..fc06ea34b0ad 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman-1-10g-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman-1-10g-0.dtsi
index 83ae87b69d92..be2d58ed087e 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman-1-10g-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman-1-10g-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan 10g port #0 device tree stub [ controller @ offset 0x500000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-0.dtsi
index b0f0e36a4eac..e7464206e5c2 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan 1g port #0 device tree stub [ controller @ offset 0x500000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-1.dtsi
index a3a79f8552a3..2e0946b88cd5 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan 1g port #1 device tree stub [ controller @ offset 0x500000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-2.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-2.dtsi
index 96a69a84b8a8..d56b2284c2fe 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-2.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-2.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan 1g port #2 device tree stub [ controller @ offset 0x500000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-3.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-3.dtsi
index 7405d1940133..07f59e5c5de4 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-3.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-3.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan 1g port #3 device tree stub [ controller @ offset 0x500000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-4.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-4.dtsi
index f49ad69e5212..b1bfe1d2e873 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-4.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman-1-1g-4.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan 1g port #4 device tree stub [ controller @ offset 0x500000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman-1.dtsi
index e95c11ff0417..15b7210f86c6 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan device tree stub [ controller @ offset 0x500000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi
index baa0c503e741..e09910c9b833 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 1g port #0 device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi
index 93095600e808..1713f1c75912 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 10g port #0 device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi
index ff4bd38f0645..7e079fbe3be1 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 1g port #1 device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi
index 1fa38ed6f59e..f2c60099a789 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 10g port #1 device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi
index a8cc9780c0c4..308f0b1c1a57 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 1g port #0 device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi
index 8b8bd70c9382..4c49b7a58d0b 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 1g port #1 device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi
index 619c880b54d8..b34a4a2adcfa 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 1g port #2 device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi
index d7ebb73a400d..026ec70f0aee 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 1g port #3 device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi
index b151d696a069..12993a9a6f24 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 1g port #4 device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi
index adc0ae0013a3..03314ce18dfd 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 1g port #5 device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0.dtsi
index d62b36c5a329..51f6ec2a74c6 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi
index 435047e0e250..9a85289f68fe 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 10g port #0 device tree stub [ controller @ offset 0x500000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi
index c098657cca0a..075d2d001067 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 10g port #1 device tree stub [ controller @ offset 0x500000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi
index 9d06824815f3..db6956c1d48b 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 1g port #0 device tree stub [ controller @ offset 0x500000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi
index 70e947730c4b..83cb906f18b0 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 1g port #1 device tree stub [ controller @ offset 0x500000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi
index ad96e6529595..65380d33706f 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 1g port #2 device tree stub [ controller @ offset 0x500000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi
index 034bc4b71f7a..0d5248ceed93 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 1g port #3 device tree stub [ controller @ offset 0x500000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi
index 93ca23d82b39..2c8a09cb712d 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 1g port #4 device tree stub [ controller @ offset 0x500000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi
index 23b3117a2fd2..829578f8d6f3 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 1g port #5 device tree stub [ controller @ offset 0x500000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1.dtsi
index 310232460500..063e5f6a27ba 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 device tree stub [ controller @ offset 0x500000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi
index c90702b04a53..d079ca655114 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ FMan v3 device tree stub [ controller @ offset 0x400000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-gpio-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-gpio-0.dtsi
index cf714f5f68bc..6128f4ef1588 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-gpio-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-gpio-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ GPIO device tree stub [ controller @ offset 0x130000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-gpio-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-gpio-1.dtsi
index c2f9cdadb604..3e9f1c5312d0 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-gpio-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-gpio-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ GPIO device tree stub [ controller @ offset 0x131000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-gpio-2.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-gpio-2.dtsi
index 33f3ccbac83f..1be00c297f5c 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-gpio-2.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-gpio-2.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ GPIO device tree stub [ controller @ offset 0x132000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-gpio-3.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-gpio-3.dtsi
index 86954e95ea02..094e052498fe 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-gpio-3.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-gpio-3.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ GPIO device tree stub [ controller @ offset 0x133000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-i2c-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-i2c-0.dtsi
index 5f9bf7debe4c..03f10a03c522 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-i2c-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-i2c-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ I2C device tree stub [ controller @ offset 0x118000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-i2c-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-i2c-1.dtsi
index 7989bf5eeb53..f8671feb8b17 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-i2c-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-i2c-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ I2C device tree stub [ controller @ offset 0x119000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-mpic.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-mpic.dtsi
index 08f42271f86a..a3470a6295d7 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-mpic.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-mpic.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ MPIC device tree stub [ controller @ offset 0x40000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-mpic4.3.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-mpic4.3.dtsi
index 64f713c24825..6c06a3573f9b 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-mpic4.3.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-mpic4.3.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ MPIC device tree stub [ controller @ offset 0x40000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-qman1-portals.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-qman1-portals.dtsi
index e77e4b4ed53b..c3482c22dabb 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-qman1-portals.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-qman1-portals.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ QMan Portal device tree stub for 10 portals & 15 pool channels
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-qman1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-qman1.dtsi
index 0695778c4386..18ffd6ad4c5d 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-qman1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-qman1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ QMan device tree stub [ controller @ offset 0x318000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-qman3.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-qman3.dtsi
index b379abd1439d..dba14fbddf11 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-qman3.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-qman3.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ QMan rev3 device tree stub [ controller @ offset 0x318000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-raid1.0-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-raid1.0-0.dtsi
index 8d2e8aa6cf8a..fbe44e6fff28 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-raid1.0-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-raid1.0-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ RAID 1.0 device tree stub [ controller @ offset 0x320000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-rmu-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-rmu-0.dtsi
index ca7fec792e53..4b2cccafae18 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-rmu-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-rmu-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ RIO Message Unit device tree stub [ controller @ offset 0xd3000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sata2-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sata2-0.dtsi
index b642047fdecf..9e743a246658 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-sata2-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-sata2-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ SATAv2 device tree stub [ controller @ offset 0x220000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sata2-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sata2-1.dtsi
index c57370259750..5e5b28e2f81e 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-sata2-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-sata2-1.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ SATAv2 device tree stub [ controller @ offset 0x221000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sec4.0-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sec4.0-0.dtsi
index 02bee5fcbb9a..4821cdff2a37 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-sec4.0-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-sec4.0-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ Sec/Crypto 4.0 device tree stub [ controller @ offset 0x300000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sec4.2-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sec4.2-0.dtsi
index 7f7574e53323..ab800399893b 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-sec4.2-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-sec4.2-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ Sec/Crypto 4.2 device tree stub [ controller @ offset 0x300000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sec5.0-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sec5.0-0.dtsi
index e298efbb0f3e..8305c7de2420 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-sec5.0-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-sec5.0-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ Sec/Crypto 5.0 device tree stub [ controller @ offset 0x300000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sec5.2-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sec5.2-0.dtsi
index 33ff09d52e05..561cf5571c74 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-sec5.2-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-sec5.2-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ Sec/Crypto 5.2 device tree stub [ controller @ offset 0x300000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sec5.3-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sec5.3-0.dtsi
index 08778221c194..c092b970bb09 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-sec5.3-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-sec5.3-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ Sec/Crypto 5.3 device tree stub [ controller @ offset 0x300000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sec6.0-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sec6.0-0.dtsi
index 7d4a6a2354f4..1fcdff9a3795 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-sec6.0-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-sec6.0-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ Sec/Crypto 6.0 device tree stub
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-usb2-dr-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-usb2-dr-0.dtsi
index 4dd6f84c239c..6c1b781c8126 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-usb2-dr-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-usb2-dr-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ USB DR device tree stub [ controller @ offset 0x211000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-usb2-mph-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-usb2-mph-0.dtsi
index f053835aa1c7..0d8f20aea727 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-usb2-mph-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-usb2-mph-0.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * QorIQ USB Host device tree stub [ controller @ offset 0x210000 ]
  *
diff --git a/arch/powerpc/boot/dts/fsl/t1023rdb.dts b/arch/powerpc/boot/dts/fsl/t1023rdb.dts
index f82f85c65964..1be0449cc4c4 100644
--- a/arch/powerpc/boot/dts/fsl/t1023rdb.dts
+++ b/arch/powerpc/boot/dts/fsl/t1023rdb.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T1023 RDB Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t1023si-post.dtsi b/arch/powerpc/boot/dts/fsl/t1023si-post.dtsi
index d552044c5afc..cf35c86582af 100644
--- a/arch/powerpc/boot/dts/fsl/t1023si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t1023si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T1023 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/t1024qds.dts b/arch/powerpc/boot/dts/fsl/t1024qds.dts
index d6858b7cd93f..23e521be3359 100644
--- a/arch/powerpc/boot/dts/fsl/t1024qds.dts
+++ b/arch/powerpc/boot/dts/fsl/t1024qds.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T1024 QDS Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t1024rdb.dts b/arch/powerpc/boot/dts/fsl/t1024rdb.dts
index dbcd31cc35dc..a36d3059f2d5 100644
--- a/arch/powerpc/boot/dts/fsl/t1024rdb.dts
+++ b/arch/powerpc/boot/dts/fsl/t1024rdb.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T1024 RDB Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t1024si-post.dtsi b/arch/powerpc/boot/dts/fsl/t1024si-post.dtsi
index bb480346a58d..216bc0ea9da7 100644
--- a/arch/powerpc/boot/dts/fsl/t1024si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t1024si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T1024 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/t102xsi-pre.dtsi b/arch/powerpc/boot/dts/fsl/t102xsi-pre.dtsi
index d87ea13164f2..e8116152bca5 100644
--- a/arch/powerpc/boot/dts/fsl/t102xsi-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t102xsi-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T1024/T1023 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/t1040d4rdb.dts b/arch/powerpc/boot/dts/fsl/t1040d4rdb.dts
index fb6bc02ebb60..bbcfa9a9acea 100644
--- a/arch/powerpc/boot/dts/fsl/t1040d4rdb.dts
+++ b/arch/powerpc/boot/dts/fsl/t1040d4rdb.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T1040D4RDB Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t1040qds.dts b/arch/powerpc/boot/dts/fsl/t1040qds.dts
index 5f76edc7838c..54c712e2eaf1 100644
--- a/arch/powerpc/boot/dts/fsl/t1040qds.dts
+++ b/arch/powerpc/boot/dts/fsl/t1040qds.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T1040QDS Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t1040rdb.dts b/arch/powerpc/boot/dts/fsl/t1040rdb.dts
index af0c8a6f5613..52446a30ddb5 100644
--- a/arch/powerpc/boot/dts/fsl/t1040rdb.dts
+++ b/arch/powerpc/boot/dts/fsl/t1040rdb.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T1040RDB Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t1040si-post.dtsi b/arch/powerpc/boot/dts/fsl/t1040si-post.dtsi
index f58eb820eb5e..7240b9bf4520 100644
--- a/arch/powerpc/boot/dts/fsl/t1040si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t1040si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T1040 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/t1042d4rdb.dts b/arch/powerpc/boot/dts/fsl/t1042d4rdb.dts
index 4fa15f48a4c3..c647b740c241 100644
--- a/arch/powerpc/boot/dts/fsl/t1042d4rdb.dts
+++ b/arch/powerpc/boot/dts/fsl/t1042d4rdb.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T1042D4RDB Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t1042qds.dts b/arch/powerpc/boot/dts/fsl/t1042qds.dts
index 90a4a73bb905..bb243f619fb4 100644
--- a/arch/powerpc/boot/dts/fsl/t1042qds.dts
+++ b/arch/powerpc/boot/dts/fsl/t1042qds.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T1042QDS Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t1042rdb.dts b/arch/powerpc/boot/dts/fsl/t1042rdb.dts
index 3ebb712224cb..e29aace1689e 100644
--- a/arch/powerpc/boot/dts/fsl/t1042rdb.dts
+++ b/arch/powerpc/boot/dts/fsl/t1042rdb.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T1042RDB Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t1042rdb_pi.dts b/arch/powerpc/boot/dts/fsl/t1042rdb_pi.dts
index 8ec3ff45e6fc..70d39872aefb 100644
--- a/arch/powerpc/boot/dts/fsl/t1042rdb_pi.dts
+++ b/arch/powerpc/boot/dts/fsl/t1042rdb_pi.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T1042RDB_PI Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t1042si-post.dtsi b/arch/powerpc/boot/dts/fsl/t1042si-post.dtsi
index a5544f93689c..256aad82a083 100644
--- a/arch/powerpc/boot/dts/fsl/t1042si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t1042si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T1042 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/t104xd4rdb.dtsi b/arch/powerpc/boot/dts/fsl/t104xd4rdb.dtsi
index 863f9431285f..c61a198c5fb1 100644
--- a/arch/powerpc/boot/dts/fsl/t104xd4rdb.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t104xd4rdb.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T1040D4RDB/T1042D4RDB Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t104xqds.dtsi b/arch/powerpc/boot/dts/fsl/t104xqds.dtsi
index 615479732252..3ee9e5283619 100644
--- a/arch/powerpc/boot/dts/fsl/t104xqds.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t104xqds.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T104xQDS Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t104xrdb.dtsi b/arch/powerpc/boot/dts/fsl/t104xrdb.dtsi
index 099a598c74c0..c96e22f5c777 100644
--- a/arch/powerpc/boot/dts/fsl/t104xrdb.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t104xrdb.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T1040RDB/T1042RDB Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t104xsi-pre.dtsi b/arch/powerpc/boot/dts/fsl/t104xsi-pre.dtsi
index dd59e4b69480..defb358c403f 100644
--- a/arch/powerpc/boot/dts/fsl/t104xsi-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t104xsi-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T1040/T1042 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/t2080qds.dts b/arch/powerpc/boot/dts/fsl/t2080qds.dts
index 8d190e8c62ce..510acd246c27 100644
--- a/arch/powerpc/boot/dts/fsl/t2080qds.dts
+++ b/arch/powerpc/boot/dts/fsl/t2080qds.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T2080QDS Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t2080rdb.dts b/arch/powerpc/boot/dts/fsl/t2080rdb.dts
index 092a400740f8..2b5c78525a2e 100644
--- a/arch/powerpc/boot/dts/fsl/t2080rdb.dts
+++ b/arch/powerpc/boot/dts/fsl/t2080rdb.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T2080PCIe-RDB Board Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t2080si-post.dtsi b/arch/powerpc/boot/dts/fsl/t2080si-post.dtsi
index 082ec2044060..7fe2313f3f93 100644
--- a/arch/powerpc/boot/dts/fsl/t2080si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t2080si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T2080 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/t2081qds.dts b/arch/powerpc/boot/dts/fsl/t2081qds.dts
index fc5c4a30f7ad..4213b88b9ad4 100644
--- a/arch/powerpc/boot/dts/fsl/t2081qds.dts
+++ b/arch/powerpc/boot/dts/fsl/t2081qds.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T2081QDS Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t2081si-post.dtsi b/arch/powerpc/boot/dts/fsl/t2081si-post.dtsi
index ecbb447920bc..ce872f561647 100644
--- a/arch/powerpc/boot/dts/fsl/t2081si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t2081si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T2081 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/t208xqds.dtsi b/arch/powerpc/boot/dts/fsl/t208xqds.dtsi
index db4139999b28..2ad3230dd3bf 100644
--- a/arch/powerpc/boot/dts/fsl/t208xqds.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t208xqds.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T2080/T2081 QDS Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t208xrdb.dtsi b/arch/powerpc/boot/dts/fsl/t208xrdb.dtsi
index ff87e67c70da..71d91ee1a5d5 100644
--- a/arch/powerpc/boot/dts/fsl/t208xrdb.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t208xrdb.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T2080PCIe-RDB Board Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t208xsi-pre.dtsi b/arch/powerpc/boot/dts/fsl/t208xsi-pre.dtsi
index 3f745de44284..3b22e7ef50bf 100644
--- a/arch/powerpc/boot/dts/fsl/t208xsi-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t208xsi-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T2080/T2081 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/t4240qds.dts b/arch/powerpc/boot/dts/fsl/t4240qds.dts
index c0913ac5aaad..fc4c988bd8d3 100644
--- a/arch/powerpc/boot/dts/fsl/t4240qds.dts
+++ b/arch/powerpc/boot/dts/fsl/t4240qds.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T4240QDS Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t4240rdb.dts b/arch/powerpc/boot/dts/fsl/t4240rdb.dts
index 145896f2eef6..883f282976ef 100644
--- a/arch/powerpc/boot/dts/fsl/t4240rdb.dts
+++ b/arch/powerpc/boot/dts/fsl/t4240rdb.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T4240RDB Device Tree Source
  *
diff --git a/arch/powerpc/boot/dts/fsl/t4240si-post.dtsi b/arch/powerpc/boot/dts/fsl/t4240si-post.dtsi
index fcac73486d48..5a3f2b33724e 100644
--- a/arch/powerpc/boot/dts/fsl/t4240si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t4240si-post.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T4240 Silicon/SoC Device Tree Source (post include)
  *
diff --git a/arch/powerpc/boot/dts/fsl/t4240si-pre.dtsi b/arch/powerpc/boot/dts/fsl/t4240si-pre.dtsi
index 632314c6faa9..1125d001201b 100644
--- a/arch/powerpc/boot/dts/fsl/t4240si-pre.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t4240si-pre.dtsi
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * T4240 Silicon/SoC Device Tree Source (pre include)
  *
diff --git a/arch/powerpc/boot/dts/fsp2.dts b/arch/powerpc/boot/dts/fsp2.dts
index 9311b86b1bd9..738f2c6f65eb 100644
--- a/arch/powerpc/boot/dts/fsp2.dts
+++ b/arch/powerpc/boot/dts/fsp2.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for FSP2
  *
diff --git a/arch/powerpc/boot/dts/glacier.dts b/arch/powerpc/boot/dts/glacier.dts
index e84ff1afb58c..99288f564bb3 100644
--- a/arch/powerpc/boot/dts/glacier.dts
+++ b/arch/powerpc/boot/dts/glacier.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for AMCC Glacier (460GT)
  *
diff --git a/arch/powerpc/boot/dts/haleakala.dts b/arch/powerpc/boot/dts/haleakala.dts
index f81ce8786d59..ade71c06fff7 100644
--- a/arch/powerpc/boot/dts/haleakala.dts
+++ b/arch/powerpc/boot/dts/haleakala.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for AMCC Haleakala (405EXr)
  *
diff --git a/arch/powerpc/boot/dts/holly.dts b/arch/powerpc/boot/dts/holly.dts
index 02bd304c7d38..a0707fa09027 100644
--- a/arch/powerpc/boot/dts/holly.dts
+++ b/arch/powerpc/boot/dts/holly.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for IBM Holly (PPC 750CL with TSI controller)
  * Copyright 2007, IBM Corporation
diff --git a/arch/powerpc/boot/dts/hotfoot.dts b/arch/powerpc/boot/dts/hotfoot.dts
index b93bf2d9dd5b..bb3d764b74e3 100644
--- a/arch/powerpc/boot/dts/hotfoot.dts
+++ b/arch/powerpc/boot/dts/hotfoot.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for ESTeem 195E Hotfoot
  *
diff --git a/arch/powerpc/boot/dts/icon.dts b/arch/powerpc/boot/dts/icon.dts
index 4fd7a4fbb4fb..313a5921a26b 100644
--- a/arch/powerpc/boot/dts/icon.dts
+++ b/arch/powerpc/boot/dts/icon.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for Mosaix Technologies, Inc. ICON board
  *
diff --git a/arch/powerpc/boot/dts/iss4xx-mpic.dts b/arch/powerpc/boot/dts/iss4xx-mpic.dts
index c9f90f1a9c8e..7326fe445f96 100644
--- a/arch/powerpc/boot/dts/iss4xx-mpic.dts
+++ b/arch/powerpc/boot/dts/iss4xx-mpic.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for IBM Embedded PPC 476 Platform
  *
diff --git a/arch/powerpc/boot/dts/iss4xx.dts b/arch/powerpc/boot/dts/iss4xx.dts
index 5533aff25e41..04927f357d2b 100644
--- a/arch/powerpc/boot/dts/iss4xx.dts
+++ b/arch/powerpc/boot/dts/iss4xx.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for IBM Embedded PPC 476 Platform
  *
diff --git a/arch/powerpc/boot/dts/katmai.dts b/arch/powerpc/boot/dts/katmai.dts
index a8f353229fb7..b66ae72fa327 100644
--- a/arch/powerpc/boot/dts/katmai.dts
+++ b/arch/powerpc/boot/dts/katmai.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for AMCC Katmai eval board
  *
diff --git a/arch/powerpc/boot/dts/kilauea.dts b/arch/powerpc/boot/dts/kilauea.dts
index a709fb47a180..20fb83b3df12 100644
--- a/arch/powerpc/boot/dts/kilauea.dts
+++ b/arch/powerpc/boot/dts/kilauea.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for AMCC Kilauea (405EX)
  *
diff --git a/arch/powerpc/boot/dts/ksi8560.dts b/arch/powerpc/boot/dts/ksi8560.dts
index fe6c17c8812a..4afc96d195f9 100644
--- a/arch/powerpc/boot/dts/ksi8560.dts
+++ b/arch/powerpc/boot/dts/ksi8560.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for Emerson KSI8560
  *
diff --git a/arch/powerpc/boot/dts/kuroboxHD.dts b/arch/powerpc/boot/dts/kuroboxHD.dts
index 0a4545159e80..e3f41d2962e3 100644
--- a/arch/powerpc/boot/dts/kuroboxHD.dts
+++ b/arch/powerpc/boot/dts/kuroboxHD.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Souce for Buffalo KuroboxHD
  *
diff --git a/arch/powerpc/boot/dts/kuroboxHG.dts b/arch/powerpc/boot/dts/kuroboxHG.dts
index 0e758b347cdb..e27f2b43b8df 100644
--- a/arch/powerpc/boot/dts/kuroboxHG.dts
+++ b/arch/powerpc/boot/dts/kuroboxHG.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Souce for Buffalo KuroboxHG
  *
diff --git a/arch/powerpc/boot/dts/makalu.dts b/arch/powerpc/boot/dts/makalu.dts
index c473cd911bca..b05fc1f5a71a 100644
--- a/arch/powerpc/boot/dts/makalu.dts
+++ b/arch/powerpc/boot/dts/makalu.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for AMCC Makalu (405EX)
  *
diff --git a/arch/powerpc/boot/dts/microwatt.dts b/arch/powerpc/boot/dts/microwatt.dts
index 65b270a90f94..05abbe044205 100644
--- a/arch/powerpc/boot/dts/microwatt.dts
+++ b/arch/powerpc/boot/dts/microwatt.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /dts-v1/;
 
 / {
diff --git a/arch/powerpc/boot/dts/mvme5100.dts b/arch/powerpc/boot/dts/mvme5100.dts
index a7eb6d25903d..8cbf1b83bf8a 100644
--- a/arch/powerpc/boot/dts/mvme5100.dts
+++ b/arch/powerpc/boot/dts/mvme5100.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for Motorola/Emerson MVME5100.
  *
diff --git a/arch/powerpc/boot/dts/obs600.dts b/arch/powerpc/boot/dts/obs600.dts
index d10b0411809b..0119378ab670 100644
--- a/arch/powerpc/boot/dts/obs600.dts
+++ b/arch/powerpc/boot/dts/obs600.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for PlatHome OpenBlockS 600 (405EX)
  *
diff --git a/arch/powerpc/boot/dts/rainier.dts b/arch/powerpc/boot/dts/rainier.dts
index e59829cff556..d9de18967ae1 100644
--- a/arch/powerpc/boot/dts/rainier.dts
+++ b/arch/powerpc/boot/dts/rainier.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for AMCC Rainier
  *
diff --git a/arch/powerpc/boot/dts/redwood.dts b/arch/powerpc/boot/dts/redwood.dts
index f38035a1f4a1..6588ca1e9d5a 100644
--- a/arch/powerpc/boot/dts/redwood.dts
+++ b/arch/powerpc/boot/dts/redwood.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for AMCC Redwood(460SX)
  *
diff --git a/arch/powerpc/boot/dts/sam440ep.dts b/arch/powerpc/boot/dts/sam440ep.dts
index 7d15f18e1180..019d35112d94 100644
--- a/arch/powerpc/boot/dts/sam440ep.dts
+++ b/arch/powerpc/boot/dts/sam440ep.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for ACube Sam440ep  based off bamboo.dts code 
  * original copyrights below 
diff --git a/arch/powerpc/boot/dts/sequoia.dts b/arch/powerpc/boot/dts/sequoia.dts
index 60d211da9593..02d7b62f0f96 100644
--- a/arch/powerpc/boot/dts/sequoia.dts
+++ b/arch/powerpc/boot/dts/sequoia.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for AMCC Sequoia
  *
diff --git a/arch/powerpc/boot/dts/storcenter.dts b/arch/powerpc/boot/dts/storcenter.dts
index 99f6f544dc5f..fb3e04b28774 100644
--- a/arch/powerpc/boot/dts/storcenter.dts
+++ b/arch/powerpc/boot/dts/storcenter.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for IOMEGA StorCenter
  *
diff --git a/arch/powerpc/boot/dts/taishan.dts b/arch/powerpc/boot/dts/taishan.dts
index 803f1bff7fa8..b4a9db1a786c 100644
--- a/arch/powerpc/boot/dts/taishan.dts
+++ b/arch/powerpc/boot/dts/taishan.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for IBM/AMCC Taishan
  *
diff --git a/arch/powerpc/boot/dts/warp.dts b/arch/powerpc/boot/dts/warp.dts
index b4f32740870e..c729e0ae5ade 100644
--- a/arch/powerpc/boot/dts/warp.dts
+++ b/arch/powerpc/boot/dts/warp.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for PIKA Warp
  *
diff --git a/arch/powerpc/boot/dts/yosemite.dts b/arch/powerpc/boot/dts/yosemite.dts
index 56508785ce13..05f0a6b70c23 100644
--- a/arch/powerpc/boot/dts/yosemite.dts
+++ b/arch/powerpc/boot/dts/yosemite.dts
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for AMCC Yosemite
  *
-- 
2.33.1

^ permalink raw reply related

* [PATCH] powerpc: Add missing SPDX license identifiers
From: Christophe Leroy @ 2022-01-14 10:49 UTC (permalink / raw)
  To: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman
  Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org

Several files are missing SPDX license identifiers.

Add to them the default kernel license identifier, ie GPL-2.0.

DTS files are handled in a separate commit.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
---
 arch/powerpc/Makefile                                        | 1 +
 arch/powerpc/boot/44x.h                                      | 1 +
 arch/powerpc/boot/4xx.h                                      | 1 +
 arch/powerpc/boot/crtsavres.S                                | 1 +
 arch/powerpc/boot/dummy.c                                    | 1 +
 arch/powerpc/boot/install.sh                                 | 1 +
 arch/powerpc/boot/ops.h                                      | 1 +
 arch/powerpc/boot/serial.c                                   | 1 +
 arch/powerpc/boot/simple_alloc.c                             | 1 +
 arch/powerpc/include/asm/8xx_immap.h                         | 1 +
 arch/powerpc/include/asm/asm-compat.h                        | 1 +
 arch/powerpc/include/asm/asm-const.h                         | 1 +
 arch/powerpc/include/asm/asm-offsets.h                       | 1 +
 arch/powerpc/include/asm/cpm.h                               | 1 +
 arch/powerpc/include/asm/dtl.h                               | 1 +
 arch/powerpc/include/asm/edac.h                              | 1 +
 arch/powerpc/include/asm/ehv_pic.h                           | 1 +
 arch/powerpc/include/asm/emergency-restart.h                 | 1 +
 arch/powerpc/include/asm/epapr_hcalls.h                      | 1 +
 arch/powerpc/include/asm/fixmap.h                            | 1 +
 arch/powerpc/include/asm/floppy.h                            | 1 +
 arch/powerpc/include/asm/fs_pd.h                             | 1 +
 arch/powerpc/include/asm/fsl_hcalls.h                        | 1 +
 arch/powerpc/include/asm/hydra.h                             | 1 +
 arch/powerpc/include/asm/ibmebus.h                           | 1 +
 arch/powerpc/include/asm/kgdb.h                              | 1 +
 arch/powerpc/include/asm/membarrier.h                        | 1 +
 arch/powerpc/include/asm/module.lds.h                        | 1 +
 arch/powerpc/include/asm/mpc52xx.h                           | 1 +
 arch/powerpc/include/asm/mpc52xx_psc.h                       | 1 +
 arch/powerpc/include/asm/pmac_feature.h                      | 1 +
 arch/powerpc/include/asm/ppc_asm.h                           | 1 +
 arch/powerpc/include/asm/pte-walk.h                          | 1 +
 arch/powerpc/include/asm/rheap.h                             | 1 +
 arch/powerpc/include/asm/sfp-machine.h                       | 1 +
 arch/powerpc/include/asm/vmalloc.h                           | 1 +
 arch/powerpc/include/asm/word-at-a-time.h                    | 1 +
 arch/powerpc/kernel/interrupt_64.S                           | 1 +
 arch/powerpc/kernel/kgdb.c                                   | 1 +
 arch/powerpc/kernel/ptrace/ptrace.c                          | 1 +
 arch/powerpc/kernel/ptrace/ptrace32.c                        | 1 +
 arch/powerpc/kernel/signal.c                                 | 1 +
 arch/powerpc/kernel/signal.h                                 | 1 +
 arch/powerpc/kernel/vdso32/note.S                            | 1 +
 arch/powerpc/kernel/vdso64/note.S                            | 1 +
 arch/powerpc/kvm/mpic.c                                      | 1 +
 arch/powerpc/lib/crtsavres.S                                 | 1 +
 arch/powerpc/lib/restart_table.c                             | 1 +
 arch/powerpc/lib/rheap.c                                     | 1 +
 arch/powerpc/mm/book3s64/hash_4k.c                           | 1 +
 arch/powerpc/mm/book3s64/hash_64k.c                          | 1 +
 arch/powerpc/mm/book3s64/hash_hugepage.c                     | 1 +
 arch/powerpc/mm/hugetlbpage.c                                | 1 +
 arch/powerpc/perf/req-gen/_end.h                             | 1 +
 arch/powerpc/platforms/44x/fsp2.h                            | 1 +
 arch/powerpc/platforms/4xx/pci.c                             | 1 +
 arch/powerpc/platforms/4xx/pci.h                             | 1 +
 arch/powerpc/platforms/52xx/efika.c                          | 1 +
 arch/powerpc/platforms/52xx/mpc52xx_common.c                 | 1 +
 arch/powerpc/platforms/52xx/mpc52xx_pci.c                    | 1 +
 arch/powerpc/platforms/52xx/mpc52xx_pic.c                    | 1 +
 arch/powerpc/platforms/85xx/ksi8560.c                        | 1 +
 arch/powerpc/platforms/85xx/p1022_ds.c                       | 1 +
 arch/powerpc/platforms/85xx/p1022_rdk.c                      | 1 +
 arch/powerpc/platforms/8xx/ep88xc.c                          | 1 +
 arch/powerpc/platforms/8xx/mpc86xads.h                       | 1 +
 arch/powerpc/platforms/8xx/mpc86xads_setup.c                 | 1 +
 arch/powerpc/platforms/8xx/mpc885ads.h                       | 1 +
 arch/powerpc/platforms/8xx/mpc885ads_setup.c                 | 1 +
 arch/powerpc/platforms/8xx/mpc8xx.h                          | 1 +
 arch/powerpc/platforms/8xx/pic.c                             | 1 +
 arch/powerpc/platforms/8xx/pic.h                             | 1 +
 arch/powerpc/platforms/8xx/tqm8xx_setup.c                    | 1 +
 arch/powerpc/platforms/cell/spufs/spu_restore_dump.h_shipped | 1 +
 arch/powerpc/platforms/cell/spufs/spu_save_dump.h_shipped    | 1 +
 arch/powerpc/platforms/chrp/gg2.h                            | 1 +
 arch/powerpc/platforms/embedded6xx/linkstation.c             | 1 +
 arch/powerpc/platforms/embedded6xx/ls_uart.c                 | 1 +
 arch/powerpc/platforms/embedded6xx/mpc10x.h                  | 1 +
 arch/powerpc/platforms/embedded6xx/storcenter.c              | 1 +
 arch/powerpc/platforms/microwatt/Makefile                    | 1 +
 arch/powerpc/platforms/microwatt/setup.c                     | 1 +
 arch/powerpc/platforms/pseries/ibmebus.c                     | 1 +
 arch/powerpc/sysdev/cpm2.c                                   | 1 +
 arch/powerpc/sysdev/cpm2_pic.c                               | 1 +
 arch/powerpc/sysdev/ehv_pic.c                                | 1 +
 arch/powerpc/sysdev/ge/ge_pic.c                              | 1 +
 arch/powerpc/sysdev/mpic.c                                   | 1 +
 arch/powerpc/sysdev/rtc_cmos_setup.c                         | 1 +
 arch/powerpc/tools/ci-build.sh                               | 1 +
 arch/powerpc/tools/head_check.sh                             | 1 +
 arch/powerpc/xmon/ppc.h                                      | 1 +
 92 files changed, 92 insertions(+)

diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 5f16ac1583c5..b0298c5a78d3 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0
 # This file is included by the global makefile so that you can add your own
 # architecture-specific flags and dependencies.
 #
diff --git a/arch/powerpc/boot/44x.h b/arch/powerpc/boot/44x.h
index 02563443788a..16a4c47c8c41 100644
--- a/arch/powerpc/boot/44x.h
+++ b/arch/powerpc/boot/44x.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * PowerPC 44x related functions
  *
diff --git a/arch/powerpc/boot/4xx.h b/arch/powerpc/boot/4xx.h
index 7dc5d45361bc..f13267f67155 100644
--- a/arch/powerpc/boot/4xx.h
+++ b/arch/powerpc/boot/4xx.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * PowerPC 4xx related functions
  *
diff --git a/arch/powerpc/boot/crtsavres.S b/arch/powerpc/boot/crtsavres.S
index 085fb2b9a8b8..068f3b8b6c58 100644
--- a/arch/powerpc/boot/crtsavres.S
+++ b/arch/powerpc/boot/crtsavres.S
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * Special support for eabi and SVR4
  *
diff --git a/arch/powerpc/boot/dummy.c b/arch/powerpc/boot/dummy.c
index 31dbf45bf99c..3f9ccbf52783 100644
--- a/arch/powerpc/boot/dummy.c
+++ b/arch/powerpc/boot/dummy.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 int main(void)
 {
 	return 0;
diff --git a/arch/powerpc/boot/install.sh b/arch/powerpc/boot/install.sh
index 14473150ddb4..62479150e772 100644
--- a/arch/powerpc/boot/install.sh
+++ b/arch/powerpc/boot/install.sh
@@ -1,4 +1,5 @@
 #!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
 #
 # This file is subject to the terms and conditions of the GNU General Public
 # License.  See the file "COPYING" in the main directory of this archive
diff --git a/arch/powerpc/boot/ops.h b/arch/powerpc/boot/ops.h
index 6455fc9a244f..eafdb44bb6ed 100644
--- a/arch/powerpc/boot/ops.h
+++ b/arch/powerpc/boot/ops.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * Global definition of all the bootwrapper operations.
  *
diff --git a/arch/powerpc/boot/serial.c b/arch/powerpc/boot/serial.c
index 54d2522be485..8aebbeda735c 100644
--- a/arch/powerpc/boot/serial.c
+++ b/arch/powerpc/boot/serial.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Generic serial console support
  *
diff --git a/arch/powerpc/boot/simple_alloc.c b/arch/powerpc/boot/simple_alloc.c
index 65ec135d0157..5b3c2fb16860 100644
--- a/arch/powerpc/boot/simple_alloc.c
+++ b/arch/powerpc/boot/simple_alloc.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Implement primitive realloc(3) functionality.
  *
diff --git a/arch/powerpc/include/asm/8xx_immap.h b/arch/powerpc/include/asm/8xx_immap.h
index bdf0563ba423..0cd91d52e3fd 100644
--- a/arch/powerpc/include/asm/8xx_immap.h
+++ b/arch/powerpc/include/asm/8xx_immap.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * MPC8xx Internal Memory Map
  * Copyright (c) 1997 Dan Malek (dmalek@jlc.net)
diff --git a/arch/powerpc/include/asm/asm-compat.h b/arch/powerpc/include/asm/asm-compat.h
index 2b736d9fbb1b..a6cdaf40d7b4 100644
--- a/arch/powerpc/include/asm/asm-compat.h
+++ b/arch/powerpc/include/asm/asm-compat.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _ASM_POWERPC_ASM_COMPAT_H
 #define _ASM_POWERPC_ASM_COMPAT_H
 
diff --git a/arch/powerpc/include/asm/asm-const.h b/arch/powerpc/include/asm/asm-const.h
index bfb3c3534877..922ba500c3f2 100644
--- a/arch/powerpc/include/asm/asm-const.h
+++ b/arch/powerpc/include/asm/asm-const.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _ASM_POWERPC_ASM_CONST_H
 #define _ASM_POWERPC_ASM_CONST_H
 
diff --git a/arch/powerpc/include/asm/asm-offsets.h b/arch/powerpc/include/asm/asm-offsets.h
index d370ee36a182..9f8535716392 100644
--- a/arch/powerpc/include/asm/asm-offsets.h
+++ b/arch/powerpc/include/asm/asm-offsets.h
@@ -1 +1,2 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #include <generated/asm-offsets.h>
diff --git a/arch/powerpc/include/asm/cpm.h b/arch/powerpc/include/asm/cpm.h
index ce483b0f8a4d..475781aa71c5 100644
--- a/arch/powerpc/include/asm/cpm.h
+++ b/arch/powerpc/include/asm/cpm.h
@@ -1 +1,2 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #include <soc/fsl/cpm.h>
diff --git a/arch/powerpc/include/asm/dtl.h b/arch/powerpc/include/asm/dtl.h
index 1625888f27ef..1368c2963dfd 100644
--- a/arch/powerpc/include/asm/dtl.h
+++ b/arch/powerpc/include/asm/dtl.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _ASM_POWERPC_DTL_H
 #define _ASM_POWERPC_DTL_H
 
diff --git a/arch/powerpc/include/asm/edac.h b/arch/powerpc/include/asm/edac.h
index 5571e23d253e..d10e4ea565bb 100644
--- a/arch/powerpc/include/asm/edac.h
+++ b/arch/powerpc/include/asm/edac.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * PPC EDAC common defs
  *
diff --git a/arch/powerpc/include/asm/ehv_pic.h b/arch/powerpc/include/asm/ehv_pic.h
index dc7d48e3ea90..fecf32db2014 100644
--- a/arch/powerpc/include/asm/ehv_pic.h
+++ b/arch/powerpc/include/asm/ehv_pic.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * EHV_PIC private definitions and structure.
  *
diff --git a/arch/powerpc/include/asm/emergency-restart.h b/arch/powerpc/include/asm/emergency-restart.h
index 3711bd9d50bd..ba702050dced 100644
--- a/arch/powerpc/include/asm/emergency-restart.h
+++ b/arch/powerpc/include/asm/emergency-restart.h
@@ -1 +1,2 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #include <asm-generic/emergency-restart.h>
diff --git a/arch/powerpc/include/asm/epapr_hcalls.h b/arch/powerpc/include/asm/epapr_hcalls.h
index c99ba08a408d..07cc9c8d48fe 100644
--- a/arch/powerpc/include/asm/epapr_hcalls.h
+++ b/arch/powerpc/include/asm/epapr_hcalls.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * ePAPR hcall interface
  *
diff --git a/arch/powerpc/include/asm/fixmap.h b/arch/powerpc/include/asm/fixmap.h
index 947b5b9c4424..62d1ba66ea7d 100644
--- a/arch/powerpc/include/asm/fixmap.h
+++ b/arch/powerpc/include/asm/fixmap.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * fixmap.h: compile-time virtual memory allocation
  *
diff --git a/arch/powerpc/include/asm/floppy.h b/arch/powerpc/include/asm/floppy.h
index f8ce178b43b7..d84e3ef8ed4b 100644
--- a/arch/powerpc/include/asm/floppy.h
+++ b/arch/powerpc/include/asm/floppy.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * Architecture specific parts of the Floppy driver
  *
diff --git a/arch/powerpc/include/asm/fs_pd.h b/arch/powerpc/include/asm/fs_pd.h
index 8def56ec05c6..ae13bdea65d5 100644
--- a/arch/powerpc/include/asm/fs_pd.h
+++ b/arch/powerpc/include/asm/fs_pd.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * Platform information definitions.
  *
diff --git a/arch/powerpc/include/asm/fsl_hcalls.h b/arch/powerpc/include/asm/fsl_hcalls.h
index b889d13547fd..07d88dc7b24a 100644
--- a/arch/powerpc/include/asm/fsl_hcalls.h
+++ b/arch/powerpc/include/asm/fsl_hcalls.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * Freescale hypervisor call interface
  *
diff --git a/arch/powerpc/include/asm/hydra.h b/arch/powerpc/include/asm/hydra.h
index d024447283a0..94cce3047058 100644
--- a/arch/powerpc/include/asm/hydra.h
+++ b/arch/powerpc/include/asm/hydra.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  *  include/asm-ppc/hydra.h -- Mac I/O `Hydra' definitions
  *
diff --git a/arch/powerpc/include/asm/ibmebus.h b/arch/powerpc/include/asm/ibmebus.h
index 088f95b2e14f..866b17f80c61 100644
--- a/arch/powerpc/include/asm/ibmebus.h
+++ b/arch/powerpc/include/asm/ibmebus.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * IBM PowerPC eBus Infrastructure Support.
  *
diff --git a/arch/powerpc/include/asm/kgdb.h b/arch/powerpc/include/asm/kgdb.h
index a9e098a3b881..28bf91f99f34 100644
--- a/arch/powerpc/include/asm/kgdb.h
+++ b/arch/powerpc/include/asm/kgdb.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * The PowerPC (32/64) specific defines / externs for KGDB.  Based on
  * the previous 32bit and 64bit specific files, which had the following
diff --git a/arch/powerpc/include/asm/membarrier.h b/arch/powerpc/include/asm/membarrier.h
index de7f79157918..012bba812c3a 100644
--- a/arch/powerpc/include/asm/membarrier.h
+++ b/arch/powerpc/include/asm/membarrier.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _ASM_POWERPC_MEMBARRIER_H
 #define _ASM_POWERPC_MEMBARRIER_H
 
diff --git a/arch/powerpc/include/asm/module.lds.h b/arch/powerpc/include/asm/module.lds.h
index cea5dc124be4..a4dd672e8c6a 100644
--- a/arch/powerpc/include/asm/module.lds.h
+++ b/arch/powerpc/include/asm/module.lds.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /* Force alignment of .toc section.  */
 SECTIONS
 {
diff --git a/arch/powerpc/include/asm/mpc52xx.h b/arch/powerpc/include/asm/mpc52xx.h
index ce1e0aabaa64..604d6c3651e8 100644
--- a/arch/powerpc/include/asm/mpc52xx.h
+++ b/arch/powerpc/include/asm/mpc52xx.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * Prototypes, etc. for the Freescale MPC52xx embedded cpu chips
  * May need to be cleaned as the port goes on ...
diff --git a/arch/powerpc/include/asm/mpc52xx_psc.h b/arch/powerpc/include/asm/mpc52xx_psc.h
index ec995b289280..d42245686250 100644
--- a/arch/powerpc/include/asm/mpc52xx_psc.h
+++ b/arch/powerpc/include/asm/mpc52xx_psc.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * include/asm-ppc/mpc52xx_psc.h
  *
diff --git a/arch/powerpc/include/asm/pmac_feature.h b/arch/powerpc/include/asm/pmac_feature.h
index e08e829261b6..5fe92ff953b1 100644
--- a/arch/powerpc/include/asm/pmac_feature.h
+++ b/arch/powerpc/include/asm/pmac_feature.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * Definition of platform feature hooks for PowerMacs
  *
diff --git a/arch/powerpc/include/asm/ppc_asm.h b/arch/powerpc/include/asm/ppc_asm.h
index 3c06a33b5da4..d9c6f12e6d3e 100644
--- a/arch/powerpc/include/asm/ppc_asm.h
+++ b/arch/powerpc/include/asm/ppc_asm.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * Copyright (C) 1995-1999 Gary Thomas, Paul Mackerras, Cort Dougan.
  */
diff --git a/arch/powerpc/include/asm/pte-walk.h b/arch/powerpc/include/asm/pte-walk.h
index 714a35f0d425..dc8bd55e749f 100644
--- a/arch/powerpc/include/asm/pte-walk.h
+++ b/arch/powerpc/include/asm/pte-walk.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _ASM_POWERPC_PTE_WALK_H
 #define _ASM_POWERPC_PTE_WALK_H
 
diff --git a/arch/powerpc/include/asm/rheap.h b/arch/powerpc/include/asm/rheap.h
index 8e83703d6736..cd6455e594e4 100644
--- a/arch/powerpc/include/asm/rheap.h
+++ b/arch/powerpc/include/asm/rheap.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * include/asm-ppc/rheap.h
  *
diff --git a/arch/powerpc/include/asm/sfp-machine.h b/arch/powerpc/include/asm/sfp-machine.h
index 8b957aabb826..17b376ff8212 100644
--- a/arch/powerpc/include/asm/sfp-machine.h
+++ b/arch/powerpc/include/asm/sfp-machine.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /* Machine-dependent software floating-point definitions.  PPC version.
    Copyright (C) 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
diff --git a/arch/powerpc/include/asm/vmalloc.h b/arch/powerpc/include/asm/vmalloc.h
index 4c69ece52a31..6f8df6b07c8a 100644
--- a/arch/powerpc/include/asm/vmalloc.h
+++ b/arch/powerpc/include/asm/vmalloc.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _ASM_POWERPC_VMALLOC_H
 #define _ASM_POWERPC_VMALLOC_H
 
diff --git a/arch/powerpc/include/asm/word-at-a-time.h b/arch/powerpc/include/asm/word-at-a-time.h
index f3f4710d4ff5..96245747720d 100644
--- a/arch/powerpc/include/asm/word-at-a-time.h
+++ b/arch/powerpc/include/asm/word-at-a-time.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _ASM_WORD_AT_A_TIME_H
 #define _ASM_WORD_AT_A_TIME_H
 
diff --git a/arch/powerpc/kernel/interrupt_64.S b/arch/powerpc/kernel/interrupt_64.S
index 92088f848266..46e886c4264b 100644
--- a/arch/powerpc/kernel/interrupt_64.S
+++ b/arch/powerpc/kernel/interrupt_64.S
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #include <asm/asm-offsets.h>
 #include <asm/bug.h>
 #ifdef CONFIG_PPC_BOOK3S
diff --git a/arch/powerpc/kernel/kgdb.c b/arch/powerpc/kernel/kgdb.c
index 9f8d0fa7b718..10d64d54d2a1 100644
--- a/arch/powerpc/kernel/kgdb.c
+++ b/arch/powerpc/kernel/kgdb.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PowerPC backend to the KGDB stub.
  *
diff --git a/arch/powerpc/kernel/ptrace/ptrace.c b/arch/powerpc/kernel/ptrace/ptrace.c
index 7c7093c17c45..0be1c76a0e65 100644
--- a/arch/powerpc/kernel/ptrace/ptrace.c
+++ b/arch/powerpc/kernel/ptrace/ptrace.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  *  PowerPC version
  *    Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
diff --git a/arch/powerpc/kernel/ptrace/ptrace32.c b/arch/powerpc/kernel/ptrace/ptrace32.c
index 19c224808982..adffe6f1e7d8 100644
--- a/arch/powerpc/kernel/ptrace/ptrace32.c
+++ b/arch/powerpc/kernel/ptrace/ptrace32.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * ptrace for 32-bit processes running on a 64-bit kernel.
  *
diff --git a/arch/powerpc/kernel/signal.c b/arch/powerpc/kernel/signal.c
index b93b87df499d..d541b6e00069 100644
--- a/arch/powerpc/kernel/signal.c
+++ b/arch/powerpc/kernel/signal.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Common signal handling code for both 32 and 64 bits
  *
diff --git a/arch/powerpc/kernel/signal.h b/arch/powerpc/kernel/signal.h
index 618aeccdf691..b2e398dae4fc 100644
--- a/arch/powerpc/kernel/signal.h
+++ b/arch/powerpc/kernel/signal.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  *    Copyright (c) 2007 Benjamin Herrenschmidt, IBM Corporation
  *    Extracted from signal_32.c and signal_64.c
diff --git a/arch/powerpc/kernel/vdso32/note.S b/arch/powerpc/kernel/vdso32/note.S
index 227a7327399e..1698e72d4cbf 100644
--- a/arch/powerpc/kernel/vdso32/note.S
+++ b/arch/powerpc/kernel/vdso32/note.S
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * This supplies .note.* sections to go into the PT_NOTE inside the vDSO text.
  * Here we can supply some information useful to userland.
diff --git a/arch/powerpc/kernel/vdso64/note.S b/arch/powerpc/kernel/vdso64/note.S
index dc2a509f7e8a..bd1fa23597d6 100644
--- a/arch/powerpc/kernel/vdso64/note.S
+++ b/arch/powerpc/kernel/vdso64/note.S
@@ -1 +1,2 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #include "../vdso32/note.S"
diff --git a/arch/powerpc/kvm/mpic.c b/arch/powerpc/kvm/mpic.c
index 23e9c2bd9f27..e0982f87150a 100644
--- a/arch/powerpc/kvm/mpic.c
+++ b/arch/powerpc/kvm/mpic.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * OpenPIC emulation
  *
diff --git a/arch/powerpc/lib/crtsavres.S b/arch/powerpc/lib/crtsavres.S
index 7e5e1c28e56a..d704cf81c19f 100644
--- a/arch/powerpc/lib/crtsavres.S
+++ b/arch/powerpc/lib/crtsavres.S
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * Special support for eabi and SVR4
  *
diff --git a/arch/powerpc/lib/restart_table.c b/arch/powerpc/lib/restart_table.c
index bccb662c1b7b..aaf89522d23e 100644
--- a/arch/powerpc/lib/restart_table.c
+++ b/arch/powerpc/lib/restart_table.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 #include <asm/interrupt.h>
 #include <asm/kprobes.h>
 
diff --git a/arch/powerpc/lib/rheap.c b/arch/powerpc/lib/rheap.c
index 6aa774aa5b16..4dbe073766bf 100644
--- a/arch/powerpc/lib/rheap.c
+++ b/arch/powerpc/lib/rheap.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * A Remote Heap.  Remote means that we don't touch the memory that the
  * heap points to. Normal heap implementations use the memory they manage
diff --git a/arch/powerpc/mm/book3s64/hash_4k.c b/arch/powerpc/mm/book3s64/hash_4k.c
index 7de1a8a0c62a..847364aa7a55 100644
--- a/arch/powerpc/mm/book3s64/hash_4k.c
+++ b/arch/powerpc/mm/book3s64/hash_4k.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Copyright IBM Corporation, 2015
  * Author Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
diff --git a/arch/powerpc/mm/book3s64/hash_64k.c b/arch/powerpc/mm/book3s64/hash_64k.c
index 998c6817ed47..e302942138ee 100644
--- a/arch/powerpc/mm/book3s64/hash_64k.c
+++ b/arch/powerpc/mm/book3s64/hash_64k.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Copyright IBM Corporation, 2015
  * Author Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
diff --git a/arch/powerpc/mm/book3s64/hash_hugepage.c b/arch/powerpc/mm/book3s64/hash_hugepage.c
index c0fabe6c5a12..bb6a63e946be 100644
--- a/arch/powerpc/mm/book3s64/hash_hugepage.c
+++ b/arch/powerpc/mm/book3s64/hash_hugepage.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Copyright IBM Corporation, 2013
  * Author Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
diff --git a/arch/powerpc/mm/hugetlbpage.c b/arch/powerpc/mm/hugetlbpage.c
index ddead41e2194..5cdd7a587e09 100644
--- a/arch/powerpc/mm/hugetlbpage.c
+++ b/arch/powerpc/mm/hugetlbpage.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PPC Huge TLB Page Support for Kernel.
  *
diff --git a/arch/powerpc/perf/req-gen/_end.h b/arch/powerpc/perf/req-gen/_end.h
index 8a406980b6bf..6687fccd3752 100644
--- a/arch/powerpc/perf/req-gen/_end.h
+++ b/arch/powerpc/perf/req-gen/_end.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 
 #undef REQ_GEN_PREFIX
 #undef REQUEST_BEGIN
diff --git a/arch/powerpc/platforms/44x/fsp2.h b/arch/powerpc/platforms/44x/fsp2.h
index 9e1d52754c8b..ae637bf2b58b 100644
--- a/arch/powerpc/platforms/44x/fsp2.h
+++ b/arch/powerpc/platforms/44x/fsp2.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _ASM_POWERPC_FSP_DCR_H_
 #define _ASM_POWERPC_FSP_DCR_H_
 #ifdef __KERNEL__
diff --git a/arch/powerpc/platforms/4xx/pci.c b/arch/powerpc/platforms/4xx/pci.c
index 24f41e178cbc..1dabc65d5b3e 100644
--- a/arch/powerpc/platforms/4xx/pci.c
+++ b/arch/powerpc/platforms/4xx/pci.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PCI / PCI-X / PCI-Express support for 4xx parts
  *
diff --git a/arch/powerpc/platforms/4xx/pci.h b/arch/powerpc/platforms/4xx/pci.h
index bb4821938ab1..364838cc90ff 100644
--- a/arch/powerpc/platforms/4xx/pci.h
+++ b/arch/powerpc/platforms/4xx/pci.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * PCI / PCI-X / PCI-Express support for 4xx parts
  *
diff --git a/arch/powerpc/platforms/52xx/efika.c b/arch/powerpc/platforms/52xx/efika.c
index 3b7d70d71692..8a5563ccac30 100644
--- a/arch/powerpc/platforms/52xx/efika.c
+++ b/arch/powerpc/platforms/52xx/efika.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Efika 5K2 platform code
  * Some code really inspired from the lite5200b platform.
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_common.c b/arch/powerpc/platforms/52xx/mpc52xx_common.c
index 565e3a83dc9e..15608a2e8d72 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_common.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_common.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  *
  * Utility functions for the Freescale MPC52xx.
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pci.c b/arch/powerpc/platforms/52xx/mpc52xx_pci.c
index af0f79995214..014e6abb10d0 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_pci.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_pci.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * PCI code for the Freescale MPC52xx embedded CPU.
  *
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
index 76a8102bdb98..3b1b3421de3c 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  *
  * Programmable Interrupt Controller functions for the Freescale MPC52xx.
diff --git a/arch/powerpc/platforms/85xx/ksi8560.c b/arch/powerpc/platforms/85xx/ksi8560.c
index 6ef8580fdc0e..8c235d9e876a 100644
--- a/arch/powerpc/platforms/85xx/ksi8560.c
+++ b/arch/powerpc/platforms/85xx/ksi8560.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Board setup routines for the Emerson KSI8560
  *
diff --git a/arch/powerpc/platforms/85xx/p1022_ds.c b/arch/powerpc/platforms/85xx/p1022_ds.c
index 1f1af0557470..4770108d2d32 100644
--- a/arch/powerpc/platforms/85xx/p1022_ds.c
+++ b/arch/powerpc/platforms/85xx/p1022_ds.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1022DS board specific routines
  *
diff --git a/arch/powerpc/platforms/85xx/p1022_rdk.c b/arch/powerpc/platforms/85xx/p1022_rdk.c
index fd9e3e7ef234..ab12a8eb80a8 100644
--- a/arch/powerpc/platforms/85xx/p1022_rdk.c
+++ b/arch/powerpc/platforms/85xx/p1022_rdk.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * P1022 RDK board specific routines
  *
diff --git a/arch/powerpc/platforms/8xx/ep88xc.c b/arch/powerpc/platforms/8xx/ep88xc.c
index ebcf34a14789..46daa968aa2d 100644
--- a/arch/powerpc/platforms/8xx/ep88xc.c
+++ b/arch/powerpc/platforms/8xx/ep88xc.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Platform setup for the Embedded Planet EP88xC board
  *
diff --git a/arch/powerpc/platforms/8xx/mpc86xads.h b/arch/powerpc/platforms/8xx/mpc86xads.h
index 17b1fe75e0b2..fb3ee1fc5709 100644
--- a/arch/powerpc/platforms/8xx/mpc86xads.h
+++ b/arch/powerpc/platforms/8xx/mpc86xads.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * A collection of structures, addresses, and values associated with
  * the Freescale MPC86xADS board.
diff --git a/arch/powerpc/platforms/8xx/mpc86xads_setup.c b/arch/powerpc/platforms/8xx/mpc86xads_setup.c
index 8d02f5ff4481..3676df5d6e37 100644
--- a/arch/powerpc/platforms/8xx/mpc86xads_setup.c
+++ b/arch/powerpc/platforms/8xx/mpc86xads_setup.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*arch/powerpc/platforms/8xx/mpc86xads_setup.c
  *
  * Platform setup for the Freescale mpc86xads board
diff --git a/arch/powerpc/platforms/8xx/mpc885ads.h b/arch/powerpc/platforms/8xx/mpc885ads.h
index 19412f76fa3b..c41f98ea1c06 100644
--- a/arch/powerpc/platforms/8xx/mpc885ads.h
+++ b/arch/powerpc/platforms/8xx/mpc885ads.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * A collection of structures, addresses, and values associated with
  * the Freescale MPC885ADS board.
diff --git a/arch/powerpc/platforms/8xx/mpc885ads_setup.c b/arch/powerpc/platforms/8xx/mpc885ads_setup.c
index a0c83c1905c6..5946f86d38f1 100644
--- a/arch/powerpc/platforms/8xx/mpc885ads_setup.c
+++ b/arch/powerpc/platforms/8xx/mpc885ads_setup.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Platform setup for the Freescale mpc885ads board
  *
diff --git a/arch/powerpc/platforms/8xx/mpc8xx.h b/arch/powerpc/platforms/8xx/mpc8xx.h
index 31cc2ecace42..3baa2def744e 100644
--- a/arch/powerpc/platforms/8xx/mpc8xx.h
+++ b/arch/powerpc/platforms/8xx/mpc8xx.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * Prototypes, etc. for the Freescale MPC8xx embedded cpu chips
  * May need to be cleaned as the port goes on ...
diff --git a/arch/powerpc/platforms/8xx/pic.c b/arch/powerpc/platforms/8xx/pic.c
index f2ba837249d6..4130cea17239 100644
--- a/arch/powerpc/platforms/8xx/pic.c
+++ b/arch/powerpc/platforms/8xx/pic.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 #include <linux/kernel.h>
 #include <linux/stddef.h>
 #include <linux/sched.h>
diff --git a/arch/powerpc/platforms/8xx/pic.h b/arch/powerpc/platforms/8xx/pic.h
index 9fe00eebdc8b..45ec3966a2ce 100644
--- a/arch/powerpc/platforms/8xx/pic.h
+++ b/arch/powerpc/platforms/8xx/pic.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _PPC_KERNEL_MPC8xx_H
 #define _PPC_KERNEL_MPC8xx_H
 
diff --git a/arch/powerpc/platforms/8xx/tqm8xx_setup.c b/arch/powerpc/platforms/8xx/tqm8xx_setup.c
index 4cea8b1afa44..e8bbe1df929f 100644
--- a/arch/powerpc/platforms/8xx/tqm8xx_setup.c
+++ b/arch/powerpc/platforms/8xx/tqm8xx_setup.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Platform setup for the MPC8xx based boards from TQM.
  *
diff --git a/arch/powerpc/platforms/cell/spufs/spu_restore_dump.h_shipped b/arch/powerpc/platforms/cell/spufs/spu_restore_dump.h_shipped
index f383b027e8bf..f997a8c9edd2 100644
--- a/arch/powerpc/platforms/cell/spufs/spu_restore_dump.h_shipped
+++ b/arch/powerpc/platforms/cell/spufs/spu_restore_dump.h_shipped
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * spu_restore_dump.h: Copyright (C) 2005 IBM.
  * Hex-dump auto generated from spu_restore.c.
diff --git a/arch/powerpc/platforms/cell/spufs/spu_save_dump.h_shipped b/arch/powerpc/platforms/cell/spufs/spu_save_dump.h_shipped
index b9f81ac8a632..f85f798e270e 100644
--- a/arch/powerpc/platforms/cell/spufs/spu_save_dump.h_shipped
+++ b/arch/powerpc/platforms/cell/spufs/spu_save_dump.h_shipped
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * spu_save_dump.h: Copyright (C) 2005 IBM.
  * Hex-dump auto generated from spu_save.c.
diff --git a/arch/powerpc/platforms/chrp/gg2.h b/arch/powerpc/platforms/chrp/gg2.h
index 341ae55b99fb..4d984bf6917c 100644
--- a/arch/powerpc/platforms/chrp/gg2.h
+++ b/arch/powerpc/platforms/chrp/gg2.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  *  include/asm-ppc/gg2.h -- VLSI VAS96011/12 `Golden Gate 2' register definitions
  *
diff --git a/arch/powerpc/platforms/embedded6xx/linkstation.c b/arch/powerpc/platforms/embedded6xx/linkstation.c
index eb8342e7f84e..02514e2ad67e 100644
--- a/arch/powerpc/platforms/embedded6xx/linkstation.c
+++ b/arch/powerpc/platforms/embedded6xx/linkstation.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Board setup routines for the Buffalo Linkstation / Kurobox Platform.
  *
diff --git a/arch/powerpc/platforms/embedded6xx/ls_uart.c b/arch/powerpc/platforms/embedded6xx/ls_uart.c
index 9d891bd5df5a..87e1264d0c9c 100644
--- a/arch/powerpc/platforms/embedded6xx/ls_uart.c
+++ b/arch/powerpc/platforms/embedded6xx/ls_uart.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * AVR power-management chip interface for the Buffalo Linkstation /
  * Kurobox Platform.
diff --git a/arch/powerpc/platforms/embedded6xx/mpc10x.h b/arch/powerpc/platforms/embedded6xx/mpc10x.h
index 5ad12023e562..1f410e478ad5 100644
--- a/arch/powerpc/platforms/embedded6xx/mpc10x.h
+++ b/arch/powerpc/platforms/embedded6xx/mpc10x.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * Common routines for the Motorola SPS MPC106/8240/107 Host bridge/Mem
  * ctlr/EPIC/etc.
diff --git a/arch/powerpc/platforms/embedded6xx/storcenter.c b/arch/powerpc/platforms/embedded6xx/storcenter.c
index e188b90f7016..ac29d1d1a7b4 100644
--- a/arch/powerpc/platforms/embedded6xx/storcenter.c
+++ b/arch/powerpc/platforms/embedded6xx/storcenter.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Board setup routines for the storcenter
  *
diff --git a/arch/powerpc/platforms/microwatt/Makefile b/arch/powerpc/platforms/microwatt/Makefile
index 116d6d3ad3f0..7defeadac694 100644
--- a/arch/powerpc/platforms/microwatt/Makefile
+++ b/arch/powerpc/platforms/microwatt/Makefile
@@ -1 +1,2 @@
+# SPDX-License-Identifier: GPL-2.0
 obj-y	+= setup.o rng.o
diff --git a/arch/powerpc/platforms/microwatt/setup.c b/arch/powerpc/platforms/microwatt/setup.c
index 0b02603bdb74..fe6c242f788f 100644
--- a/arch/powerpc/platforms/microwatt/setup.c
+++ b/arch/powerpc/platforms/microwatt/setup.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Microwatt FPGA-based SoC platform setup code.
  *
diff --git a/arch/powerpc/platforms/pseries/ibmebus.c b/arch/powerpc/platforms/pseries/ibmebus.c
index 7ee3ed7d6cc2..517ded1fe467 100644
--- a/arch/powerpc/platforms/pseries/ibmebus.c
+++ b/arch/powerpc/platforms/pseries/ibmebus.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * IBM PowerPC IBM eBus Infrastructure Support.
  *
diff --git a/arch/powerpc/sysdev/cpm2.c b/arch/powerpc/sysdev/cpm2.c
index 3f130312b6e9..16ce448f0029 100644
--- a/arch/powerpc/sysdev/cpm2.c
+++ b/arch/powerpc/sysdev/cpm2.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * General Purpose functions for the global management of the
  * 8260 Communication Processor Module.
diff --git a/arch/powerpc/sysdev/cpm2_pic.c b/arch/powerpc/sysdev/cpm2_pic.c
index 9e86074719a9..91850496f2e5 100644
--- a/arch/powerpc/sysdev/cpm2_pic.c
+++ b/arch/powerpc/sysdev/cpm2_pic.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Platform information definitions.
  *
diff --git a/arch/powerpc/sysdev/ehv_pic.c b/arch/powerpc/sysdev/ehv_pic.c
index 00705258ecf9..2eb956ffcd27 100644
--- a/arch/powerpc/sysdev/ehv_pic.c
+++ b/arch/powerpc/sysdev/ehv_pic.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  *  Driver for ePAPR Embedded Hypervisor PIC
  *
diff --git a/arch/powerpc/sysdev/ge/ge_pic.c b/arch/powerpc/sysdev/ge/ge_pic.c
index 02553a8ce191..73dfe371c783 100644
--- a/arch/powerpc/sysdev/ge/ge_pic.c
+++ b/arch/powerpc/sysdev/ge/ge_pic.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Interrupt handling for GE FPGA based PIC
  *
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index d5cb48b61bbd..5071c776eed4 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  *  arch/powerpc/kernel/mpic.c
  *
diff --git a/arch/powerpc/sysdev/rtc_cmos_setup.c b/arch/powerpc/sysdev/rtc_cmos_setup.c
index af0f9beddca9..25ba1e7306de 100644
--- a/arch/powerpc/sysdev/rtc_cmos_setup.c
+++ b/arch/powerpc/sysdev/rtc_cmos_setup.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Setup code for PC-style Real-Time Clock.
  *
diff --git a/arch/powerpc/tools/ci-build.sh b/arch/powerpc/tools/ci-build.sh
index 420df6ec5a2f..a861fd722495 100755
--- a/arch/powerpc/tools/ci-build.sh
+++ b/arch/powerpc/tools/ci-build.sh
@@ -1,4 +1,5 @@
 #!/bin/bash
+# SPDX-License-Identifier: GPL-2.0
 
 if [[ -z "$TARGET" || -z "$IMAGE" ]]; then
     echo "Error: required environment variables not set!"
diff --git a/arch/powerpc/tools/head_check.sh b/arch/powerpc/tools/head_check.sh
index 689907cda996..cc055b0ed995 100644
--- a/arch/powerpc/tools/head_check.sh
+++ b/arch/powerpc/tools/head_check.sh
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0
 # Copyright © 2016 IBM Corporation
 
 # This program is free software; you can redistribute it and/or
diff --git a/arch/powerpc/xmon/ppc.h b/arch/powerpc/xmon/ppc.h
index d00f33dcf192..4f8db773e01c 100644
--- a/arch/powerpc/xmon/ppc.h
+++ b/arch/powerpc/xmon/ppc.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /* ppc.h -- Header file for PowerPC opcode table
    Copyright (C) 1994-2016 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support
-- 
2.33.1

^ permalink raw reply related

* Re: [PATCH] powerpc/bpf: Always reallocate BPF_REG_5, BPF_REG_AX and TMP_REG when possible
From: Naveen N. Rao @ 2022-01-14 10:37 UTC (permalink / raw)
  To: Benjamin Herrenschmidt, Christophe Leroy, Michael Ellerman, Paul,
	 Mackerras
  Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
In-Reply-To: <f6a5027a-6f3b-ee50-3439-56b5948d860a@csgroup.eu>

Christophe Leroy wrote:
> 
> 
> Le 14/01/2022 à 08:58, Naveen N. Rao a écrit :
>> Christophe Leroy wrote:
>>> BPF_REG_5, BPF_REG_AX and TMP_REG are mapped on non volatile registers
>>> because there are not enough volatile registers, but they don't need
>>> to be preserved on function calls.
>>>
>>> So when some volatile registers become available, those registers can
>>> always be reallocated regardless of whether SEEN_FUNC is set or not.
>>>
>>> Suggested-by: Naveen N. Rao <naveen.n.rao@linux.ibm.com>
>>> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
>>> ---
>>>  arch/powerpc/net/bpf_jit.h        |  3 ---
>>>  arch/powerpc/net/bpf_jit_comp32.c | 14 +++++++++++---
>>>  2 files changed, 11 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/arch/powerpc/net/bpf_jit.h b/arch/powerpc/net/bpf_jit.h
>>> index b20a2a83a6e7..b75507fc8f6b 100644
>>> --- a/arch/powerpc/net/bpf_jit.h
>>> +++ b/arch/powerpc/net/bpf_jit.h
>>> @@ -127,9 +127,6 @@
>>>  #define SEEN_FUNC    0x20000000 /* might call external helpers */
>>>  #define SEEN_TAILCALL    0x40000000 /* uses tail calls */
>>>
>>> -#define SEEN_VREG_MASK    0x1ff80000 /* Volatile registers r3-r12 */
>>> -#define SEEN_NVREG_MASK    0x0003ffff /* Non volatile registers 
>>> r14-r31 */
>>> -
>>>  #ifdef CONFIG_PPC64
>>>  extern const int b2p[MAX_BPF_JIT_REG + 2];
>>>  #else
>>> diff --git a/arch/powerpc/net/bpf_jit_comp32.c 
>>> b/arch/powerpc/net/bpf_jit_comp32.c
>>> index d3a52cd42f53..cfec42c8a511 100644
>>> --- a/arch/powerpc/net/bpf_jit_comp32.c
>>> +++ b/arch/powerpc/net/bpf_jit_comp32.c
>>> @@ -77,14 +77,22 @@ static int bpf_jit_stack_offsetof(struct 
>>> codegen_context *ctx, int reg)
>>>      return BPF_PPC_STACKFRAME(ctx) - 4;
>>>  }
>>>
>>> +#define SEEN_VREG_MASK        0x1ff80000 /* Volatile registers r3-r12 */
>>> +#define SEEN_NVREG_FULL_MASK    0x0003ffff /* Non volatile registers 
>>> r14-r31 */
>>> +#define SEEN_NVREG_TEMP_MASK    0x00001e01 /* BPF_REG_5, BPF_REG_AX, 
>>> TMP_REG */
>> 
>> Could have been named better: SEEN_NVREG_BPF_VGER_MASK, or such.
> 
> Yes, I was suffering from a lack of inspiration.
> 
> What does BPF_VGER mean ?

That I was suffering from a lack of caffeine.

I meant to suggest BPF_VREG, to indicate those are BPF volatile 
registers.


- Naveen


^ permalink raw reply

* Re: [PATCH 1/1] powerpc/e500/qemu-e500: allow core to idle without waiting
From: Joachim Wiberg @ 2022-01-14 10:32 UTC (permalink / raw)
  To: Scott Wood, linuxppc-dev, Michael Ellerman,
	Benjamin Herrenschmidt, Paul Mackerras
  Cc: Tobias Waldekranz
In-Reply-To: <f6d4c1151e290bb71a18dcf6fd424fe15250e75d.camel@buserror.net>

On Wed, Jan 12, 2022 at 06:36, Scott Wood <oss@buserror.net> wrote:
> On Wed, 2022-01-12 at 12:24 +0100, Joachim Wiberg wrote:
>> [snip]
>> +#ifdef CONFIG_PPC64
>> +       .power_save             = book3e_idle,
>> +#else
>> +       .power_save             = e500_idle,
>> +#endif
>>  };
> In the 32-bit case shouldn't this already be getting added by
> setup_power_save()?  Though I see corenet_generic.c doing the same thing...

We went for consistency with the corenet_generic.c setup, which as you
noted does the same thing.

Best regards
 /Joachim

^ permalink raw reply

* Re: [PATCH] powerpc/bpf: Always reallocate BPF_REG_5, BPF_REG_AX and TMP_REG when possible
From: Christophe Leroy @ 2022-01-14  8:03 UTC (permalink / raw)
  To: Naveen N. Rao, Benjamin Herrenschmidt, Michael Ellerman,
	Paul Mackerras
  Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
In-Reply-To: <1642147004.dum5th9cvl.naveen@linux.ibm.com>



Le 14/01/2022 à 08:58, Naveen N. Rao a écrit :
> Christophe Leroy wrote:
>> BPF_REG_5, BPF_REG_AX and TMP_REG are mapped on non volatile registers
>> because there are not enough volatile registers, but they don't need
>> to be preserved on function calls.
>>
>> So when some volatile registers become available, those registers can
>> always be reallocated regardless of whether SEEN_FUNC is set or not.
>>
>> Suggested-by: Naveen N. Rao <naveen.n.rao@linux.ibm.com>
>> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
>> ---
>>  arch/powerpc/net/bpf_jit.h        |  3 ---
>>  arch/powerpc/net/bpf_jit_comp32.c | 14 +++++++++++---
>>  2 files changed, 11 insertions(+), 6 deletions(-)
>>
>> diff --git a/arch/powerpc/net/bpf_jit.h b/arch/powerpc/net/bpf_jit.h
>> index b20a2a83a6e7..b75507fc8f6b 100644
>> --- a/arch/powerpc/net/bpf_jit.h
>> +++ b/arch/powerpc/net/bpf_jit.h
>> @@ -127,9 +127,6 @@
>>  #define SEEN_FUNC    0x20000000 /* might call external helpers */
>>  #define SEEN_TAILCALL    0x40000000 /* uses tail calls */
>>
>> -#define SEEN_VREG_MASK    0x1ff80000 /* Volatile registers r3-r12 */
>> -#define SEEN_NVREG_MASK    0x0003ffff /* Non volatile registers 
>> r14-r31 */
>> -
>>  #ifdef CONFIG_PPC64
>>  extern const int b2p[MAX_BPF_JIT_REG + 2];
>>  #else
>> diff --git a/arch/powerpc/net/bpf_jit_comp32.c 
>> b/arch/powerpc/net/bpf_jit_comp32.c
>> index d3a52cd42f53..cfec42c8a511 100644
>> --- a/arch/powerpc/net/bpf_jit_comp32.c
>> +++ b/arch/powerpc/net/bpf_jit_comp32.c
>> @@ -77,14 +77,22 @@ static int bpf_jit_stack_offsetof(struct 
>> codegen_context *ctx, int reg)
>>      return BPF_PPC_STACKFRAME(ctx) - 4;
>>  }
>>
>> +#define SEEN_VREG_MASK        0x1ff80000 /* Volatile registers r3-r12 */
>> +#define SEEN_NVREG_FULL_MASK    0x0003ffff /* Non volatile registers 
>> r14-r31 */
>> +#define SEEN_NVREG_TEMP_MASK    0x00001e01 /* BPF_REG_5, BPF_REG_AX, 
>> TMP_REG */
> 
> Could have been named better: SEEN_NVREG_BPF_VGER_MASK, or such.

Yes, I was suffering from a lack of inspiration.

What does BPF_VGER mean ?


> Apart from that:
> Reviewed-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
> 

Thanks

^ permalink raw reply

* Re: [PATCH] powerpc/bpf: Always reallocate BPF_REG_5, BPF_REG_AX and TMP_REG when possible
From: Naveen N. Rao @ 2022-01-14  7:58 UTC (permalink / raw)
  To: Benjamin Herrenschmidt, Christophe Leroy, Michael Ellerman,
	Paul Mackerras
  Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
In-Reply-To: <b04c246874b716911139c04bc004b3b14eed07ef.1641817763.git.christophe.leroy@csgroup.eu>

Christophe Leroy wrote:
> BPF_REG_5, BPF_REG_AX and TMP_REG are mapped on non volatile registers
> because there are not enough volatile registers, but they don't need
> to be preserved on function calls.
> 
> So when some volatile registers become available, those registers can
> always be reallocated regardless of whether SEEN_FUNC is set or not.
> 
> Suggested-by: Naveen N. Rao <naveen.n.rao@linux.ibm.com>
> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> ---
>  arch/powerpc/net/bpf_jit.h        |  3 ---
>  arch/powerpc/net/bpf_jit_comp32.c | 14 +++++++++++---
>  2 files changed, 11 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/powerpc/net/bpf_jit.h b/arch/powerpc/net/bpf_jit.h
> index b20a2a83a6e7..b75507fc8f6b 100644
> --- a/arch/powerpc/net/bpf_jit.h
> +++ b/arch/powerpc/net/bpf_jit.h
> @@ -127,9 +127,6 @@
>  #define SEEN_FUNC	0x20000000 /* might call external helpers */
>  #define SEEN_TAILCALL	0x40000000 /* uses tail calls */
>  
> -#define SEEN_VREG_MASK	0x1ff80000 /* Volatile registers r3-r12 */
> -#define SEEN_NVREG_MASK	0x0003ffff /* Non volatile registers r14-r31 */
> -
>  #ifdef CONFIG_PPC64
>  extern const int b2p[MAX_BPF_JIT_REG + 2];
>  #else
> diff --git a/arch/powerpc/net/bpf_jit_comp32.c b/arch/powerpc/net/bpf_jit_comp32.c
> index d3a52cd42f53..cfec42c8a511 100644
> --- a/arch/powerpc/net/bpf_jit_comp32.c
> +++ b/arch/powerpc/net/bpf_jit_comp32.c
> @@ -77,14 +77,22 @@ static int bpf_jit_stack_offsetof(struct codegen_context *ctx, int reg)
>  	return BPF_PPC_STACKFRAME(ctx) - 4;
>  }
>  
> +#define SEEN_VREG_MASK		0x1ff80000 /* Volatile registers r3-r12 */
> +#define SEEN_NVREG_FULL_MASK	0x0003ffff /* Non volatile registers r14-r31 */
> +#define SEEN_NVREG_TEMP_MASK	0x00001e01 /* BPF_REG_5, BPF_REG_AX, TMP_REG */

Could have been named better: SEEN_NVREG_BPF_VGER_MASK, or such.
Apart from that:
Reviewed-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>


^ permalink raw reply

* Re: [PATCH] net: apple: bmac: Fix build since dev_addr constification
From: Jakub Kicinski @ 2022-01-14  4:21 UTC (permalink / raw)
  To: Michael Ellerman; +Cc: netdev, linuxppc-dev, davem
In-Reply-To: <20220114031316.2419293-1-mpe@ellerman.id.au>

On Fri, 14 Jan 2022 14:13:16 +1100 Michael Ellerman wrote:
> Since commit adeef3e32146 ("net: constify netdev->dev_addr") the bmac
> driver no longer builds with the following errors (pmac32_defconfig):
> 
>   linux/drivers/net/ethernet/apple/bmac.c: In function ‘bmac_probe’:
>   linux/drivers/net/ethernet/apple/bmac.c:1287:20: error: assignment of read-only location ‘*(dev->dev_addr + (sizetype)j)’
>    1287 |   dev->dev_addr[j] = rev ? bitrev8(addr[j]): addr[j];
>         |                    ^
> 
> Fix it by making the modifications to a local macaddr variable and then
> passing that to eth_hw_addr_set().
> 
> We don't use the existing addr variable because the bitrev8() would
> mutate it, but it is already used unreversed later in the function.
> 
> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>

Reviewed-by: Jakub Kicinski <kuba@kernel.org>

Thank you!

^ permalink raw reply

* Re: [PATCH] net: apple: mace: Fix build since dev_addr constification
From: Jakub Kicinski @ 2022-01-14  4:21 UTC (permalink / raw)
  To: Michael Ellerman; +Cc: netdev, linuxppc-dev, davem
In-Reply-To: <20220114031252.2419042-1-mpe@ellerman.id.au>

On Fri, 14 Jan 2022 14:12:52 +1100 Michael Ellerman wrote:
> Since commit adeef3e32146 ("net: constify netdev->dev_addr") the mace
> driver no longer builds with various errors (pmac32_defconfig):
> 
>   linux/drivers/net/ethernet/apple/mace.c: In function ‘mace_probe’:
>   linux/drivers/net/ethernet/apple/mace.c:170:20: error: assignment of read-only location ‘*(dev->dev_addr + (sizetype)j)’
>     170 |   dev->dev_addr[j] = rev ? bitrev8(addr[j]): addr[j];
>         |                    ^
>   linux/drivers/net/ethernet/apple/mace.c: In function ‘mace_reset’:
>   linux/drivers/net/ethernet/apple/mace.c:349:32: warning: passing argument 2 of ‘__mace_set_address’ discards ‘const’ qualifier from pointer target type
>     349 |     __mace_set_address(dev, dev->dev_addr);
>         |                             ~~~^~~~~~~~~~
>   linux/drivers/net/ethernet/apple/mace.c:93:62: note: expected ‘void *’ but argument is of type ‘const unsigned char *’
>      93 | static void __mace_set_address(struct net_device *dev, void *addr);
>         |                                                        ~~~~~~^~~~
>   linux/drivers/net/ethernet/apple/mace.c: In function ‘__mace_set_address’:
>   linux/drivers/net/ethernet/apple/mace.c:388:36: error: assignment of read-only location ‘*(dev->dev_addr + (sizetype)i)’
>     388 |  out_8(&mb->padr, dev->dev_addr[i] = p[i]);
>         |                                    ^
> 
> Fix it by making the modifications to a local macaddr variable and then
> passing that to eth_hw_addr_set(), as well as adding some missing const
> qualifiers.
> 
> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>

Reviewed-by: Jakub Kicinski <kuba@kernel.org>

^ permalink raw reply

* [PATCH] powerpc/perf: Fix power_pmu_wants_prompt_pmi to be defined only for CONFIG_PPC64
From: Athira Rajeev @ 2022-01-14  3:13 UTC (permalink / raw)
  To: mpe; +Cc: kjain, maddy, linuxppc-dev, npiggin, rnsastry

power_pmu_wants_prompt_pmi is used to decide if PMI should
be taken prompt. This is valid only for ppc64 and is used
in CONFIG_PPC_BOOK3S_64 context. Hence include the function
under config check for PPC64

Fixes warning for 32-bit compilation:

>> arch/powerpc/perf/core-book3s.c:2455:6: warning: no previous prototype for 'power_pmu_wants_prompt_pmi' [-Wmissing-prototypes]
    2455 | bool power_pmu_wants_prompt_pmi(void)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~

Fixes: 5a7745b96f43 ("powerpc/64s/perf: add power_pmu_wants_prompt_pmi to say whether perf wants PMIs to be soft-NMI")
Signed-off-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Reported-by: kernel test robot <lkp@intel.com>
---
Note: Address compilation warning reported here:
 https://lore.kernel.org/lkml/202112220137.X16y07Dp-lkp@intel.com/ 
Patch is based on powerpc/merge

 arch/powerpc/perf/core-book3s.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/powerpc/perf/core-book3s.c b/arch/powerpc/perf/core-book3s.c
index a684901b6965..b7160fae58c6 100644
--- a/arch/powerpc/perf/core-book3s.c
+++ b/arch/powerpc/perf/core-book3s.c
@@ -2452,6 +2452,7 @@ static void perf_event_interrupt(struct pt_regs *regs)
  * could possibly return false if only events are being counted rather than
  * samples being taken, but for now this is good enough.
  */
+#ifdef CONFIG_PPC64
 bool power_pmu_wants_prompt_pmi(void)
 {
 	struct cpu_hw_events *cpuhw;
@@ -2467,6 +2468,7 @@ bool power_pmu_wants_prompt_pmi(void)
 	cpuhw = this_cpu_ptr(&cpu_hw_events);
 	return cpuhw->n_events;
 }
+#endif
 
 static int power_pmu_prepare_cpu(unsigned int cpu)
 {
-- 
2.33.0


^ permalink raw reply related

* [PATCH] net: apple: bmac: Fix build since dev_addr constification
From: Michael Ellerman @ 2022-01-14  3:13 UTC (permalink / raw)
  To: netdev, kuba, davem; +Cc: linuxppc-dev

Since commit adeef3e32146 ("net: constify netdev->dev_addr") the bmac
driver no longer builds with the following errors (pmac32_defconfig):

  linux/drivers/net/ethernet/apple/bmac.c: In function ‘bmac_probe’:
  linux/drivers/net/ethernet/apple/bmac.c:1287:20: error: assignment of read-only location ‘*(dev->dev_addr + (sizetype)j)’
   1287 |   dev->dev_addr[j] = rev ? bitrev8(addr[j]): addr[j];
        |                    ^

Fix it by making the modifications to a local macaddr variable and then
passing that to eth_hw_addr_set().

We don't use the existing addr variable because the bitrev8() would
mutate it, but it is already used unreversed later in the function.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
 drivers/net/ethernet/apple/bmac.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/apple/bmac.c b/drivers/net/ethernet/apple/bmac.c
index 9a650d1c1bdd..4d2ba30c2fbd 100644
--- a/drivers/net/ethernet/apple/bmac.c
+++ b/drivers/net/ethernet/apple/bmac.c
@@ -1237,6 +1237,7 @@ static int bmac_probe(struct macio_dev *mdev, const struct of_device_id *match)
 	struct bmac_data *bp;
 	const unsigned char *prop_addr;
 	unsigned char addr[6];
+	u8 macaddr[6];
 	struct net_device *dev;
 	int is_bmac_plus = ((int)match->data) != 0;
 
@@ -1284,7 +1285,9 @@ static int bmac_probe(struct macio_dev *mdev, const struct of_device_id *match)
 
 	rev = addr[0] == 0 && addr[1] == 0xA0;
 	for (j = 0; j < 6; ++j)
-		dev->dev_addr[j] = rev ? bitrev8(addr[j]): addr[j];
+		macaddr[j] = rev ? bitrev8(addr[j]): addr[j];
+
+	eth_hw_addr_set(dev, macaddr);
 
 	/* Enable chip without interrupts for now */
 	bmac_enable_and_reset_chip(dev);
-- 
2.31.1


^ permalink raw reply related

* [PATCH] net: apple: mace: Fix build since dev_addr constification
From: Michael Ellerman @ 2022-01-14  3:12 UTC (permalink / raw)
  To: netdev, kuba, davem; +Cc: linuxppc-dev

Since commit adeef3e32146 ("net: constify netdev->dev_addr") the mace
driver no longer builds with various errors (pmac32_defconfig):

  linux/drivers/net/ethernet/apple/mace.c: In function ‘mace_probe’:
  linux/drivers/net/ethernet/apple/mace.c:170:20: error: assignment of read-only location ‘*(dev->dev_addr + (sizetype)j)’
    170 |   dev->dev_addr[j] = rev ? bitrev8(addr[j]): addr[j];
        |                    ^
  linux/drivers/net/ethernet/apple/mace.c: In function ‘mace_reset’:
  linux/drivers/net/ethernet/apple/mace.c:349:32: warning: passing argument 2 of ‘__mace_set_address’ discards ‘const’ qualifier from pointer target type
    349 |     __mace_set_address(dev, dev->dev_addr);
        |                             ~~~^~~~~~~~~~
  linux/drivers/net/ethernet/apple/mace.c:93:62: note: expected ‘void *’ but argument is of type ‘const unsigned char *’
     93 | static void __mace_set_address(struct net_device *dev, void *addr);
        |                                                        ~~~~~~^~~~
  linux/drivers/net/ethernet/apple/mace.c: In function ‘__mace_set_address’:
  linux/drivers/net/ethernet/apple/mace.c:388:36: error: assignment of read-only location ‘*(dev->dev_addr + (sizetype)i)’
    388 |  out_8(&mb->padr, dev->dev_addr[i] = p[i]);
        |                                    ^

Fix it by making the modifications to a local macaddr variable and then
passing that to eth_hw_addr_set(), as well as adding some missing const
qualifiers.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
 drivers/net/ethernet/apple/mace.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/apple/mace.c b/drivers/net/ethernet/apple/mace.c
index 4b80e3a52a19..6f8c91eb1263 100644
--- a/drivers/net/ethernet/apple/mace.c
+++ b/drivers/net/ethernet/apple/mace.c
@@ -90,7 +90,7 @@ static void mace_set_timeout(struct net_device *dev);
 static void mace_tx_timeout(struct timer_list *t);
 static inline void dbdma_reset(volatile struct dbdma_regs __iomem *dma);
 static inline void mace_clean_rings(struct mace_data *mp);
-static void __mace_set_address(struct net_device *dev, void *addr);
+static void __mace_set_address(struct net_device *dev, const void *addr);
 
 /*
  * If we can't get a skbuff when we need it, we use this area for DMA.
@@ -112,6 +112,7 @@ static int mace_probe(struct macio_dev *mdev, const struct of_device_id *match)
 	struct net_device *dev;
 	struct mace_data *mp;
 	const unsigned char *addr;
+	u8 macaddr[ETH_ALEN];
 	int j, rev, rc = -EBUSY;
 
 	if (macio_resource_count(mdev) != 3 || macio_irq_count(mdev) != 3) {
@@ -167,8 +168,9 @@ static int mace_probe(struct macio_dev *mdev, const struct of_device_id *match)
 
 	rev = addr[0] == 0 && addr[1] == 0xA0;
 	for (j = 0; j < 6; ++j) {
-		dev->dev_addr[j] = rev ? bitrev8(addr[j]): addr[j];
+		macaddr[j] = rev ? bitrev8(addr[j]): addr[j];
 	}
+	eth_hw_addr_set(dev, macaddr);
 	mp->chipid = (in_8(&mp->mace->chipid_hi) << 8) |
 			in_8(&mp->mace->chipid_lo);
 
@@ -369,11 +371,12 @@ static void mace_reset(struct net_device *dev)
 	out_8(&mb->plscc, PORTSEL_GPSI + ENPLSIO);
 }
 
-static void __mace_set_address(struct net_device *dev, void *addr)
+static void __mace_set_address(struct net_device *dev, const void *addr)
 {
     struct mace_data *mp = netdev_priv(dev);
     volatile struct mace __iomem *mb = mp->mace;
-    unsigned char *p = addr;
+    const unsigned char *p = addr;
+    u8 macaddr[ETH_ALEN];
     int i;
 
     /* load up the hardware address */
@@ -385,7 +388,10 @@ static void __mace_set_address(struct net_device *dev, void *addr)
 	    ;
     }
     for (i = 0; i < 6; ++i)
-	out_8(&mb->padr, dev->dev_addr[i] = p[i]);
+        out_8(&mb->padr, macaddr[i] = p[i]);
+
+    eth_hw_addr_set(dev, macaddr);
+
     if (mp->chipid != BROKEN_ADDRCHG_REV)
         out_8(&mb->iac, 0);
 }
-- 
2.31.1


^ permalink raw reply related

* [PATCH] powerpc/audit: Fix syscall_get_arch()
From: Christophe Leroy @ 2022-01-13 18:07 UTC (permalink / raw)
  To: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman
  Cc: stable@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-kernel@vger.kernel.org, Dmitry V . Levin

Commit 770cec16cdc9 ("powerpc/audit: Simplify syscall_get_arch()")
replaced test_tsk_thread_flag(task, TIF_32BIT)) by is_32bit_task().

But is_32bit_task() applies on current task while be want the test
done on task 'task'

So re-use test_tsk_thread_flag() instead.

Reported-by: Dmitry V. Levin <ldv@altlinux.org>
Fixes: 770cec16cdc9 ("powerpc/audit: Simplify syscall_get_arch()")
Cc: stable@vger.kernel.org
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
---
 arch/powerpc/include/asm/syscall.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/include/asm/syscall.h b/arch/powerpc/include/asm/syscall.h
index 52d05b465e3e..32f76833b736 100644
--- a/arch/powerpc/include/asm/syscall.h
+++ b/arch/powerpc/include/asm/syscall.h
@@ -105,7 +105,9 @@ static inline void syscall_get_arguments(struct task_struct *task,
 
 static inline int syscall_get_arch(struct task_struct *task)
 {
-	if (is_32bit_task())
+	if (IS_ENABLED(CONFIG_PPC32))
+		return AUDIT_ARCH_PPC;
+	else if (IS_ENABLED(CONFIG_COMPAT) && test_tsk_thread_flag(task, TIF_32BIT))
 		return AUDIT_ARCH_PPC;
 	else if (IS_ENABLED(CONFIG_CPU_LITTLE_ENDIAN))
 		return AUDIT_ARCH_PPC64LE;
-- 
2.33.1

^ permalink raw reply related

* Re: [RFC PATCH v3 2/8] mm: compaction: handle non-lru compound pages properly in isolate_migratepages_block().
From: Zi Yan @ 2022-01-13 16:23 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: Mel Gorman, linuxppc-dev, linux-kernel, virtualization, linux-mm,
	iommu, Eric Ren, Robin Murphy, Christoph Hellwig, Vlastimil Babka,
	Marek Szyprowski
In-Reply-To: <71108865-5368-4725-AA5A-35A57C350D77@nvidia.com>

[-- Attachment #1: Type: text/plain, Size: 2367 bytes --]

On 13 Jan 2022, at 9:57, Zi Yan wrote:

> On 12 Jan 2022, at 6:01, David Hildenbrand wrote:
>
>> On 05.01.22 22:47, Zi Yan wrote:
>>> From: Zi Yan <ziy@nvidia.com>
>>>
>>> In isolate_migratepages_block(), a !PageLRU tail page can be encountered
>>> when the page is larger than a pageblock. Use compound head page for the
>>> checks inside and skip the entire compound page when isolation succeeds.
>>>
>>
>> This will currently never happen, due to the way we always isolate
>> MAX_ORDER -1 ranges, correct?
>
> You are right.
>
>>
>> Better note that in the patch description, because currently it reads
>> like it's an actual fix "can be encountered".
>>
>
> Will do. This is a preparation patch for the upcoming commits.

I will drop this one too. Like you mentioned in [1], there are no
non-lru migratable compound pages. This is only used by my local
test code.

[1] https://lore.kernel.org/linux-mm/970ca2a4-416d-7e8f-37c7-510c5b050f4b@redhat.com/


>
>>> Signed-off-by: Zi Yan <ziy@nvidia.com>
>>> ---
>>>  mm/compaction.c | 10 +++++++---
>>>  1 file changed, 7 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/mm/compaction.c b/mm/compaction.c
>>> index b4e94cda3019..ad9053fbbe06 100644
>>> --- a/mm/compaction.c
>>> +++ b/mm/compaction.c
>>> @@ -979,19 +979,23 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn,
>>>  		 * Skip any other type of page
>>>  		 */
>>>  		if (!PageLRU(page)) {
>>> +			struct page *head = compound_head(page);
>>>  			/*
>>>  			 * __PageMovable can return false positive so we need
>>>  			 * to verify it under page_lock.
>>>  			 */
>>> -			if (unlikely(__PageMovable(page)) &&
>>> -					!PageIsolated(page)) {
>>> +			if (unlikely(__PageMovable(head)) &&
>>> +					!PageIsolated(head)) {
>>>  				if (locked) {
>>>  					unlock_page_lruvec_irqrestore(locked, flags);
>>>  					locked = NULL;
>>>  				}
>>>
>>> -				if (!isolate_movable_page(page, isolate_mode))
>>> +				if (!isolate_movable_page(head, isolate_mode)) {
>>> +					low_pfn += (1 << compound_order(head)) - 1 - (page - head);
>>> +					page = head;
>>>  					goto isolate_success;
>>> +				}
>>>  			}
>>>
>>>  			goto isolate_fail;
>>
>>
>> -- 
>> Thanks,
>>
>> David / dhildenb
>
>
> --
> Best Regards,
> Yan, Zi


--
Best Regards,
Yan, Zi

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 854 bytes --]

^ permalink raw reply

* Re: [PATCH] powerpc/audit: Simplify syscall_get_arch()
From: Dmitry V. Levin @ 2022-01-13 15:50 UTC (permalink / raw)
  To: Christophe Leroy; +Cc: linux-kernel, Paul Mackerras, linuxppc-dev, strace-devel
In-Reply-To: <4be53b9187a4d8c163968f4d224267e41a7fcc33.1629451479.git.christophe.leroy@csgroup.eu>

On Fri, Aug 20, 2021 at 09:39:14AM +0000, Christophe Leroy wrote:
> Make use of is_32bit_task() and CONFIG_CPU_LITTLE_ENDIAN
> to simplify syscall_get_arch().
> 
> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> ---
>  arch/powerpc/include/asm/syscall.h | 15 +++++----------
>  1 file changed, 5 insertions(+), 10 deletions(-)

Unfortunately, this commit breaks PTRACE_GET_SYSCALL_INFO and therefore
breaks strace support of AUDIT_ARCH_PPC personality on ppc64.

I've got the following report from the test farm:

=====================================================
   strace 5.16: tests-m32/test-suite.log
=====================================================

# TOTAL: 1184
# PASS:  138
# SKIP:  189
# XFAIL: 0
# FAIL:  857
# XPASS: 0
# ERROR: 0

$ hostname -f
gcc203.fsffrance.org
$ uname -a
Linux gcc203 5.15.0-2-powerpc64 #1 SMP Debian 5.15.5-2 (2021-12-18) ppc64 GNU/Linux

It boils down to
$ echo 'int main(){return 0;}' |gcc -m32 -xc -
$ strace --trace=none ./a.out 
syscall_0xc0(0, 0x18357, 0x1, 0x2, 0x3, 0) = 0xf7930000
syscall_0xc0(0x390000, 0x2089c0, 0x5, 0x802, 0x3, 0) = 0x390000
syscall_0xc0(0x580000, 0x20000, 0x3, 0x812, 0x3, 0x1e0) = 0x580000
+++ exited with 0 +++

$ strace -qq --signal=none --trace=ptrace strace -qq --trace=none -o/dev/null ./a.out
...
ptrace(PTRACE_GET_SYSCALL_INFO, 1234567, 88, {op=PTRACE_SYSCALL_INFO_ENTRY, arch=AUDIT_ARCH_PPC64, instruction_pointer=0xf7b34594, stack_pointer=0xffecfbf0, entry={nr=192, args=[0, 0x18357, 0x1, 0x2, 0x3, 0]}}) = 80
ptrace(PTRACE_SYSCALL, 1234567, NULL, 0) = 0
ptrace(PTRACE_GET_SYSCALL_INFO, 1234567, 88, {op=PTRACE_SYSCALL_INFO_EXIT, arch=AUDIT_ARCH_PPC64, instruction_pointer=0xf7b34594, stack_pointer=0xffecfbf0, exit={rval=4155441152, is_error=0}}) = 33
) = 0xf7af0000

As you can see, arch=AUDIT_ARCH_PPC64 is wrong here and causes all the damage.

> diff --git a/arch/powerpc/include/asm/syscall.h b/arch/powerpc/include/asm/syscall.h
> index ba0f88f3a30d..ac766037e8a1 100644
> --- a/arch/powerpc/include/asm/syscall.h
> +++ b/arch/powerpc/include/asm/syscall.h
> @@ -116,16 +116,11 @@ static inline void syscall_set_arguments(struct task_struct *task,
>  
>  static inline int syscall_get_arch(struct task_struct *task)
>  {
> -	int arch;
> -
> -	if (IS_ENABLED(CONFIG_PPC64) && !test_tsk_thread_flag(task, TIF_32BIT))
> -		arch = AUDIT_ARCH_PPC64;
> +	if (is_32bit_task())
> +		return AUDIT_ARCH_PPC;
> +	else if (IS_ENABLED(CONFIG_CPU_LITTLE_ENDIAN))
> +		return AUDIT_ARCH_PPC64LE;
>  	else
> -		arch = AUDIT_ARCH_PPC;
> -
> -#ifdef __LITTLE_ENDIAN__
> -	arch |= __AUDIT_ARCH_LE;
> -#endif
> -	return arch;
> +		return AUDIT_ARCH_PPC64;
>  }
>  #endif	/* _ASM_SYSCALL_H */

Please revert or fix.


-- 
ldv

^ permalink raw reply

* Re: [RFC PATCH v3 3/8] mm: migrate: allocate the right size of non hugetlb or THP compound pages.
From: David Hildenbrand @ 2022-01-13 15:50 UTC (permalink / raw)
  To: Zi Yan
  Cc: Mel Gorman, linuxppc-dev, linux-kernel, virtualization, linux-mm,
	iommu, Eric Ren, Robin Murphy, Christoph Hellwig, Vlastimil Babka,
	Marek Szyprowski
In-Reply-To: <15E26B9B-8AE2-4916-94E7-D0BBB2491B1B@nvidia.com>

On 13.01.22 16:46, Zi Yan wrote:
> On 12 Jan 2022, at 6:04, David Hildenbrand wrote:
> 
>> On 05.01.22 22:47, Zi Yan wrote:
>>> From: Zi Yan <ziy@nvidia.com>
>>>
>>> alloc_migration_target() is used by alloc_contig_range() and non-LRU
>>> movable compound pages can be migrated. Current code does not allocate the
>>> right page size for such pages. Check THP precisely using
>>> is_transparent_huge() and add allocation support for non-LRU compound
>>> pages.
>>
>> IIRC, we don't have any non-lru migratable pages that are coumpound
>> pages. Read: not used and not supported :)
> 
> OK, but nothing prevents one writing a driver that allocates compound
> pages and provides address_space->migratepage() and address_space->isolate_page().
> 
> Actually, to test this series, I write a kernel module that allocates
> an order-10 page, gives it a fake address_space with migratepage() and
> isolate_page(), __SetPageMovable() on it, then call alloc_contig_range()
> on the page range. Apparently, my kernel module is not supported by
> the kernel, thus, I added this patch.
> 
> Do you have an alternative test to my kernel module, so that I do not
> even need this patch myself?
> 
>> Why is this required in the context of this series?
> 
> It might not be required. I will drop it.

That's why I think it would be best dropping it. If you need it in
different context, better submit it in different context.

Makes this series easier to digest :)


-- 
Thanks,

David / dhildenb


^ permalink raw reply

* Re: [RFC PATCH v3 3/8] mm: migrate: allocate the right size of non hugetlb or THP compound pages.
From: Zi Yan @ 2022-01-13 15:46 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: Mel Gorman, linuxppc-dev, linux-kernel, virtualization, linux-mm,
	iommu, Eric Ren, Robin Murphy, Christoph Hellwig, Vlastimil Babka,
	Marek Szyprowski
In-Reply-To: <970ca2a4-416d-7e8f-37c7-510c5b050f4b@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 1232 bytes --]

On 12 Jan 2022, at 6:04, David Hildenbrand wrote:

> On 05.01.22 22:47, Zi Yan wrote:
>> From: Zi Yan <ziy@nvidia.com>
>>
>> alloc_migration_target() is used by alloc_contig_range() and non-LRU
>> movable compound pages can be migrated. Current code does not allocate the
>> right page size for such pages. Check THP precisely using
>> is_transparent_huge() and add allocation support for non-LRU compound
>> pages.
>
> IIRC, we don't have any non-lru migratable pages that are coumpound
> pages. Read: not used and not supported :)

OK, but nothing prevents one writing a driver that allocates compound
pages and provides address_space->migratepage() and address_space->isolate_page().

Actually, to test this series, I write a kernel module that allocates
an order-10 page, gives it a fake address_space with migratepage() and
isolate_page(), __SetPageMovable() on it, then call alloc_contig_range()
on the page range. Apparently, my kernel module is not supported by
the kernel, thus, I added this patch.

Do you have an alternative test to my kernel module, so that I do not
even need this patch myself?

> Why is this required in the context of this series?

It might not be required. I will drop it.

--
Best Regards,
Yan, Zi

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 854 bytes --]

^ permalink raw reply

* Re: [RFC PATCH v3 2/8] mm: compaction: handle non-lru compound pages properly in isolate_migratepages_block().
From: Zi Yan @ 2022-01-13 14:57 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: Mel Gorman, linuxppc-dev, linux-kernel, virtualization, linux-mm,
	iommu, Eric Ren, Robin Murphy, Christoph Hellwig, Vlastimil Babka,
	Marek Szyprowski
In-Reply-To: <a5e029e8-f646-a414-f4f4-ba573171642f@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 1980 bytes --]

On 12 Jan 2022, at 6:01, David Hildenbrand wrote:

> On 05.01.22 22:47, Zi Yan wrote:
>> From: Zi Yan <ziy@nvidia.com>
>>
>> In isolate_migratepages_block(), a !PageLRU tail page can be encountered
>> when the page is larger than a pageblock. Use compound head page for the
>> checks inside and skip the entire compound page when isolation succeeds.
>>
>
> This will currently never happen, due to the way we always isolate
> MAX_ORDER -1 ranges, correct?

You are right.

>
> Better note that in the patch description, because currently it reads
> like it's an actual fix "can be encountered".
>

Will do. This is a preparation patch for the upcoming commits.


>> Signed-off-by: Zi Yan <ziy@nvidia.com>
>> ---
>>  mm/compaction.c | 10 +++++++---
>>  1 file changed, 7 insertions(+), 3 deletions(-)
>>
>> diff --git a/mm/compaction.c b/mm/compaction.c
>> index b4e94cda3019..ad9053fbbe06 100644
>> --- a/mm/compaction.c
>> +++ b/mm/compaction.c
>> @@ -979,19 +979,23 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn,
>>  		 * Skip any other type of page
>>  		 */
>>  		if (!PageLRU(page)) {
>> +			struct page *head = compound_head(page);
>>  			/*
>>  			 * __PageMovable can return false positive so we need
>>  			 * to verify it under page_lock.
>>  			 */
>> -			if (unlikely(__PageMovable(page)) &&
>> -					!PageIsolated(page)) {
>> +			if (unlikely(__PageMovable(head)) &&
>> +					!PageIsolated(head)) {
>>  				if (locked) {
>>  					unlock_page_lruvec_irqrestore(locked, flags);
>>  					locked = NULL;
>>  				}
>>
>> -				if (!isolate_movable_page(page, isolate_mode))
>> +				if (!isolate_movable_page(head, isolate_mode)) {
>> +					low_pfn += (1 << compound_order(head)) - 1 - (page - head);
>> +					page = head;
>>  					goto isolate_success;
>> +				}
>>  			}
>>
>>  			goto isolate_fail;
>
>
> -- 
> Thanks,
>
> David / dhildenb


--
Best Regards,
Yan, Zi

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 854 bytes --]

^ permalink raw reply

* Re: [RFC PATCH v3 1/8] mm: page_alloc: avoid merging non-fallbackable pageblocks with others.
From: Zi Yan @ 2022-01-13 14:50 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: Mel Gorman, linuxppc-dev, linux-kernel, virtualization, linux-mm,
	iommu, Vlastimil Babka, Eric Ren, Robin Murphy, Christoph Hellwig,
	Mike Rapoport, Marek Szyprowski
In-Reply-To: <ae2862a0-c39c-ed2f-23fe-510c6c2fad5c@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 2377 bytes --]

On 13 Jan 2022, at 7:28, David Hildenbrand wrote:

> On 13.01.22 12:36, Mike Rapoport wrote:
>> On Wed, Jan 12, 2022 at 11:54:49AM +0100, David Hildenbrand wrote:
>>> On 05.01.22 22:47, Zi Yan wrote:
>>>> From: Zi Yan <ziy@nvidia.com>
>>>>
>>>> This is done in addition to MIGRATE_ISOLATE pageblock merge avoidance.
>>>> It prepares for the upcoming removal of the MAX_ORDER-1 alignment
>>>> requirement for CMA and alloc_contig_range().
>>>>
>>>> MIGRARTE_HIGHATOMIC should not merge with other migratetypes like
>>>> MIGRATE_ISOLATE and MIGRARTE_CMA[1], so this commit prevents that too.
>>>> Also add MIGRARTE_HIGHATOMIC to fallbacks array for completeness.
>>>>
>>>> [1] https://lore.kernel.org/linux-mm/20211130100853.GP3366@techsingularity.net/
>>>>
>>>> Signed-off-by: Zi Yan <ziy@nvidia.com>
>>>> ---
>>>>  include/linux/mmzone.h |  6 ++++++
>>>>  mm/page_alloc.c        | 28 ++++++++++++++++++----------
>>>>  2 files changed, 24 insertions(+), 10 deletions(-)
>>>>
>>
>> ...
>>
>>>> @@ -3545,8 +3553,8 @@ int __isolate_free_page(struct page *page, unsigned int order)
>>>>  		struct page *endpage = page + (1 << order) - 1;
>>>>  		for (; page < endpage; page += pageblock_nr_pages) {
>>>>  			int mt = get_pageblock_migratetype(page);
>>>> -			if (!is_migrate_isolate(mt) && !is_migrate_cma(mt)
>>>> -			    && !is_migrate_highatomic(mt))
>>>> +			/* Only change normal pageblock */
>>>> +			if (migratetype_has_fallback(mt))
>>>>  				set_pageblock_migratetype(page,
>>>>  							  MIGRATE_MOVABLE);
>>>>  		}
>>>
>>> That part is a nice cleanup IMHO. Although the "has fallback" part is a
>>> bit imprecise. "migratetype_is_mergable()" might be a bit clearer.
>>> ideally "migratetype_is_mergable_with_other_types()". Can we come up
>>> with a nice name for that?
>>
>> migratetype_is_mergable() kinda implies "_with_other_types", no?
>>
>> I like migratetype_is_mergable() more than _has_fallback().
>>
>> My $0.02 to bikeshedding :)
>
> :)
>
> Yeah, for me migratetype_is_mergable() would also be good enough. I
> think I was at first thinking one could mistake it with a dedicated
> migratetype. But such functions are historically called
>
> is_migrate_cma/is_migrate_cma/....
>
> -- 
> Thanks,
>
> David / dhildenb

OK. Will use migratetype_is_mergable() instead.


--
Best Regards,
Yan, Zi

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 854 bytes --]

^ permalink raw reply

* Re: [RFC PATCH v3 1/8] mm: page_alloc: avoid merging non-fallbackable pageblocks with others.
From: Zi Yan @ 2022-01-13 14:49 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: Mel Gorman, linuxppc-dev, linux-kernel, virtualization, linux-mm,
	iommu, Eric Ren, Robin Murphy, Christoph Hellwig, Vlastimil Babka,
	Marek Szyprowski
In-Reply-To: <7dc078ef-70f4-159e-b928-34f0fb0ffaea@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 6230 bytes --]

On 12 Jan 2022, at 5:54, David Hildenbrand wrote:

> On 05.01.22 22:47, Zi Yan wrote:
>> From: Zi Yan <ziy@nvidia.com>
>>
>> This is done in addition to MIGRATE_ISOLATE pageblock merge avoidance.
>> It prepares for the upcoming removal of the MAX_ORDER-1 alignment
>> requirement for CMA and alloc_contig_range().
>>
>> MIGRARTE_HIGHATOMIC should not merge with other migratetypes like
>> MIGRATE_ISOLATE and MIGRARTE_CMA[1], so this commit prevents that too.
>> Also add MIGRARTE_HIGHATOMIC to fallbacks array for completeness.
>>
>> [1] https://lore.kernel.org/linux-mm/20211130100853.GP3366@techsingularity.net/
>>
>> Signed-off-by: Zi Yan <ziy@nvidia.com>
>> ---
>>  include/linux/mmzone.h |  6 ++++++
>>  mm/page_alloc.c        | 28 ++++++++++++++++++----------
>>  2 files changed, 24 insertions(+), 10 deletions(-)
>>
>> diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
>> index aed44e9b5d89..0aa549653e4e 100644
>> --- a/include/linux/mmzone.h
>> +++ b/include/linux/mmzone.h
>> @@ -83,6 +83,12 @@ static inline bool is_migrate_movable(int mt)
>>  	return is_migrate_cma(mt) || mt == MIGRATE_MOVABLE;
>>  }
>>
>> +/* See fallbacks[MIGRATE_TYPES][3] in page_alloc.c */
>> +static inline bool migratetype_has_fallback(int mt)
>> +{
>> +	return mt < MIGRATE_PCPTYPES;
>> +}
>> +
>>  #define for_each_migratetype_order(order, type) \
>>  	for (order = 0; order < MAX_ORDER; order++) \
>>  		for (type = 0; type < MIGRATE_TYPES; type++)
>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>> index 8dd6399bafb5..5193c953dbf8 100644
>> --- a/mm/page_alloc.c
>> +++ b/mm/page_alloc.c
>> @@ -1042,6 +1042,12 @@ buddy_merge_likely(unsigned long pfn, unsigned long buddy_pfn,
>>  	return page_is_buddy(higher_page, higher_buddy, order + 1);
>>  }
>>
>> +static inline bool has_non_fallback_pageblock(struct zone *zone)
>> +{
>> +	return has_isolate_pageblock(zone) || zone_cma_pages(zone) != 0 ||
>> +		zone->nr_reserved_highatomic != 0;
>> +}
>
> Due to zone_cma_pages(), the unlikely() below will be very wrong on many
> setups. Previously, isolation really was a corner case. CMA and
> highatomic are less of a corner case ...

Got it.

>
> I'm not even sure if this check is worth having around anymore at all,
> or if it would be easier and cheaper to just always check the both
> migration types unconditionally. Would certainly simplify the code.

I will remove the if check below, since, like you said, the check is
no longer a corner case with added highatomic and CMA check.

>
> Side node: we actually care about has_free_non_fallback_pageblock(), we
> can only merge with free pageblocks. But that might not necessarily be
> cheaper to test/track/check.
>

I agree that what we are actually looking for is free pageblocks of these
migratetypes. But tracking them is nontrivial.

>> +
>>  /*
>>   * Freeing function for a buddy system allocator.
>>   *
>> @@ -1117,14 +1123,15 @@ static inline void __free_one_page(struct page *page,
>>  	}
>>  	if (order < MAX_ORDER - 1) {
>>  		/* If we are here, it means order is >= pageblock_order.
>> -		 * We want to prevent merge between freepages on isolate
>> -		 * pageblock and normal pageblock. Without this, pageblock
>> -		 * isolation could cause incorrect freepage or CMA accounting.
>> +		 * We want to prevent merge between freepages on pageblock
>> +		 * without fallbacks and normal pageblock. Without this,
>> +		 * pageblock isolation could cause incorrect freepage or CMA
>> +		 * accounting or HIGHATOMIC accounting.
>>  		 *
>>  		 * We don't want to hit this code for the more frequent
>>  		 * low-order merging.
>>  		 */
>> -		if (unlikely(has_isolate_pageblock(zone))) {
>> +		if (unlikely(has_non_fallback_pageblock(zone))) {
>>  			int buddy_mt;
>>
>>  			buddy_pfn = __find_buddy_pfn(pfn, order);
>> @@ -1132,8 +1139,8 @@ static inline void __free_one_page(struct page *page,
>>  			buddy_mt = get_pageblock_migratetype(buddy);
>>
>>  			if (migratetype != buddy_mt
>> -					&& (is_migrate_isolate(migratetype) ||
>> -						is_migrate_isolate(buddy_mt)))
>> +					&& (!migratetype_has_fallback(migratetype) ||
>> +						!migratetype_has_fallback(buddy_mt)))
>>  				goto done_merging;
>>  		}
>>  		max_order = order + 1;
>> @@ -2484,6 +2491,7 @@ static int fallbacks[MIGRATE_TYPES][3] = {
>>  	[MIGRATE_UNMOVABLE]   = { MIGRATE_RECLAIMABLE, MIGRATE_MOVABLE,   MIGRATE_TYPES },
>>  	[MIGRATE_MOVABLE]     = { MIGRATE_RECLAIMABLE, MIGRATE_UNMOVABLE, MIGRATE_TYPES },
>>  	[MIGRATE_RECLAIMABLE] = { MIGRATE_UNMOVABLE,   MIGRATE_MOVABLE,   MIGRATE_TYPES },
>> +	[MIGRATE_HIGHATOMIC] = { MIGRATE_TYPES }, /* Never used */
>>  #ifdef CONFIG_CMA
>>  	[MIGRATE_CMA]         = { MIGRATE_TYPES }, /* Never used */
>>  #endif
>> @@ -2795,8 +2803,8 @@ static void reserve_highatomic_pageblock(struct page *page, struct zone *zone,
>>
>>  	/* Yoink! */
>>  	mt = get_pageblock_migratetype(page);
>> -	if (!is_migrate_highatomic(mt) && !is_migrate_isolate(mt)
>> -	    && !is_migrate_cma(mt)) {
>> +	/* Only reserve normal pageblock */
>> +	if (migratetype_has_fallback(mt)) {
>>  		zone->nr_reserved_highatomic += pageblock_nr_pages;
>>  		set_pageblock_migratetype(page, MIGRATE_HIGHATOMIC);
>>  		move_freepages_block(zone, page, MIGRATE_HIGHATOMIC, NULL);
>> @@ -3545,8 +3553,8 @@ int __isolate_free_page(struct page *page, unsigned int order)
>>  		struct page *endpage = page + (1 << order) - 1;
>>  		for (; page < endpage; page += pageblock_nr_pages) {
>>  			int mt = get_pageblock_migratetype(page);
>> -			if (!is_migrate_isolate(mt) && !is_migrate_cma(mt)
>> -			    && !is_migrate_highatomic(mt))
>> +			/* Only change normal pageblock */
>> +			if (migratetype_has_fallback(mt))
>>  				set_pageblock_migratetype(page,
>>  							  MIGRATE_MOVABLE);
>>  		}
>
> That part is a nice cleanup IMHO. Although the "has fallback" part is a
> bit imprecise. "migratetype_is_mergable()" might be a bit clearer.
> ideally "migratetype_is_mergable_with_other_types()". Can we come up
> with a nice name for that?

Sure. Will change the name.

Thank you for the comments.


--
Best Regards,
Yan, Zi

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 854 bytes --]

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox