History

Merge tag 'v5.9-rc4' into patchwork

Linux 5.9-rc4 * tag 'v5.9-rc4': (1001 commits) Linux 5.9-rc4 io_uring: fix linked deferred ->files cancellation io_uring: fix cancel of deferred reqs with ->files include/linux/log2.h: add missing () around n in roundup_pow_of_two() mm/khugepaged.c: fix khugepaged's request size in collapse_file mm/hugetlb: fix a race between hugetlb sysctl handlers mm/hugetlb: try preferred node first when alloc gigantic page from cma mm/migrate: preserve soft dirty in remove_migration_pte() mm/migrate: remove unnecessary is_zone_device_page() check mm/rmap: fixup copying of soft dirty and uffd ptes mm/migrate: fixup setting UFFD_WP flag mm: madvise: fix vma user-after-free checkpatch: fix the usage of capture group ( ... ) fork: adjust sysctl_max_threads definition to match prototype ipc: adjust proc_ipc_sem_dointvec definition to match prototype mm: track page table modifications in __apply_to_page_range() MAINTAINERS: IA64: mark Status as Odd Fixes only MAINTAINERS: add LLVM maintainers MAINTAINERS: update Cavium/Marvell entries mm: slub: fix conversion of freelist_corrupted() ...

Mauro Carvalho Chehab committed 6 years ago

Commit d13ee582 parents 72a9ff3 f4d51df2050 files · +13420 −8275Browse files

Unified · Split

2050 files
  1. .clang-format +12 −0
  2. .mailmap +61 −57
  3. Documentation/ABI/testing/sysfs-bus-event_source-devices-hv_24x7 +1 −1
  4. Documentation/RCU/lockdep.rst +1 −1
  5. Documentation/admin-guide/devices.txt +1 −1
  6. Documentation/admin-guide/ext4.rst +13 −10
  7. Documentation/admin-guide/kernel-parameters.txt +1 −4
  8. Documentation/admin-guide/laptops/thinkpad-acpi.rst +1 −1
  9. Documentation/admin-guide/pm/intel_pstate.rst +5 −3
  10. Documentation/bpf/index.rst +7 −0
  11. Documentation/devicetree/bindings/clock/imx23-clock.yaml +1 −1
  12. Documentation/devicetree/bindings/clock/imx28-clock.yaml +1 −1
  13. Documentation/devicetree/bindings/gpio/gpio-mxs.yaml +1 −1
  14. Documentation/devicetree/bindings/i2c/i2c-mxs.yaml +1 −1
  15. Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.txt +0 −66
  16. Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml +98 −0
  17. Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt +0 −82
  18. Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml +102 −0
  19. Documentation/devicetree/bindings/mmc/arasan,sdhci.yaml +7 −3
  20. Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml +1 −1
  21. Documentation/devicetree/bindings/mmc/mtk-sd.txt +2 −0
  22. Documentation/devicetree/bindings/mmc/mxs-mmc.yaml +1 −1
  23. Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt +29 −3
  24. Documentation/devicetree/bindings/net/dsa/dsa.txt +1 −1
  25. Documentation/devicetree/bindings/net/ethernet-controller.yaml +2 −1
  26. Documentation/devicetree/bindings/net/renesas,ether.yaml +15 −7
  27. Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml +8 −0
  28. Documentation/devicetree/bindings/pwm/mxs-pwm.yaml +1 −1
  29. Documentation/devicetree/bindings/spi/fsl-imx-cspi.yaml +1 −1
  30. Documentation/devicetree/bindings/spi/spi-fsl-lpspi.yaml +1 −0
  31. Documentation/devicetree/bindings/thermal/imx-thermal.yaml +1 −1
  32. Documentation/devicetree/bindings/timer/sifive,clint.yaml +60 −0
  33. Documentation/devicetree/bindings/vendor-prefixes.yaml +1 −1
  34. Documentation/devicetree/writing-schema.rst +2 −2
  35. Documentation/driver-api/fpga/fpga-bridge.rst +3 −3
  36. Documentation/driver-api/fpga/fpga-mgr.rst +3 −3
  37. Documentation/driver-api/fpga/fpga-programming.rst +8 −8
  38. Documentation/driver-api/fpga/fpga-region.rst +9 −9
  39. Documentation/driver-api/iio/core.rst +8 −8
  40. Documentation/fault-injection/nvme-fault-injection.rst +1 −1
  41. Documentation/filesystems/affs.rst +10 −6
  42. Documentation/filesystems/ext4/about.rst +1 −1
  43. Documentation/hwmon/abituguru-datasheet.rst +3 −3
  44. Documentation/hwmon/abituguru.rst +2 −2
  45. Documentation/hwmon/abituguru3.rst +2 −2
  46. Documentation/kbuild/llvm.rst +13 −13
  47. Documentation/kbuild/makefiles.rst +9 −9
  48. Documentation/locking/locktypes.rst +12 −12
  49. Documentation/maintainer/maintainer-entry-profile.rst +1 −0
  50. Documentation/networking/bonding.rst +0 −18
  51. Documentation/networking/dsa/configuration.rst +1 −1
  52. Documentation/powerpc/syscall64-abi.rst +3 −1
  53. Documentation/process/deprecated.rst +1 −1
  54. Documentation/sound/cards/audigy-mixer.rst +1 −1
  55. Documentation/sound/cards/sb-live-mixer.rst +1 −1
  56. Documentation/sound/designs/timestamping.rst +1 −1
  57. Documentation/translations/it_IT/process/deprecated.rst +1 −1
  58. MAINTAINERS +82 −50
  59. Makefile +3 −4
  60. arch/alpha/kernel/module.c +1 −1
  61. arch/alpha/kernel/signal.c +1 −1
  62. arch/alpha/kernel/traps.c +2 −2
  63. arch/arc/boot/dts/hsdk.dts +4 −2
  64. arch/arc/include/asm/pgalloc.h +2 −2
  65. arch/arc/kernel/disasm.c +1 −1
  66. arch/arc/kernel/perf_event.c +4 −10
  67. arch/arc/kernel/signal.c +1 −1
  68. arch/arc/kernel/troubleshoot.c +30 −47
  69. arch/arc/kernel/unwind.c +3 −3
  70. arch/arc/mm/init.c +16 −11
  71. arch/arc/plat-eznps/include/plat/ctop.h +0 −1
  72. arch/arm/kernel/hw_breakpoint.c +5 −5
  73. arch/arm/kernel/signal.c +1 −1
  74. arch/arm/mach-ep93xx/crunch.c +1 −1
  75. arch/arm/mach-mmp/pm-mmp2.c +4 −4
  76. arch/arm/mach-mmp/pm-pxa910.c +5 −5
  77. arch/arm/mach-omap2/id.c +0 −8
  78. arch/arm/mach-omap2/omap_device.c +1 −1
  79. arch/arm/mach-omap2/pm34xx.c +0 −4
  80. arch/arm/mach-orion5x/dns323-setup.c +1 −1
  81. arch/arm/mach-rpc/riscpc.c +1 −1
  82. arch/arm/mach-tegra/reset.c +1 −1
  83. arch/arm/mm/alignment.c +2 −2
  84. arch/arm/mm/proc-v7-bugs.c +1 −1
  85. arch/arm/plat-omap/dma.c +3 −3
  86. arch/arm/probes/decode.c +1 −1
  87. arch/arm/probes/kprobes/core.c +1 −1
  88. arch/arm64/Makefile +10 −3
  89. arch/arm64/boot/dts/mediatek/mt7622.dtsi +2 −0
  90. arch/arm64/boot/dts/nvidia/tegra186.dtsi +12 −8
  91. arch/arm64/boot/dts/nvidia/tegra194.dtsi +9 −6
  92. arch/arm64/boot/dts/nvidia/tegra210.dtsi +12 −8
  93. arch/arm64/boot/dts/ti/k3-am65-main.dtsi +17 −19
  94. arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi +6 −6
  95. arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi +4 −4
  96. arch/arm64/boot/dts/ti/k3-am654-base-board.dts +2 −2
  97. arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts +5 −5
  98. arch/arm64/boot/dts/ti/k3-j721e-main.dtsi +22 −21
  99. arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi +5 −7
  100. arch/arm64/include/asm/compiler.h +6 −0
  101. arch/arm64/include/asm/irqflags.h +5 −0
  102. arch/arm64/include/asm/kvm_arm.h +2 −1
  103. arch/arm64/include/asm/kvm_asm.h +43 −0
  104. arch/arm64/include/asm/kvm_host.h +1 −1
  105. arch/arm64/include/asm/tlbflush.h +4 −2
  106. arch/arm64/kernel/acpi.c +1 −1
  107. arch/arm64/kernel/cpu_errata.c +2 −0
  108. arch/arm64/kernel/cpufeature.c +1 −1
  109. arch/arm64/kernel/cpuinfo.c +0 −1
  110. arch/arm64/kernel/entry.S +0 −21
  111. arch/arm64/kernel/hw_breakpoint.c +3 −3
  112. arch/arm64/kernel/image-vars.h +4 −0
  113. arch/arm64/kernel/module-plts.c +1 −2
  114. arch/arm64/kernel/module.c +4 −4
  115. arch/arm64/kernel/process.c +34 −2
  116. arch/arm64/kernel/setup.c +0 −1
  117. arch/arm64/kernel/smp.c +1 −1
  118. arch/arm64/kernel/vdso32/Makefile +1 −1
  119. arch/arm64/kernel/vmlinux.lds.S +8 −0
  120. arch/arm64/kvm/arm.c +4 −0
  121. arch/arm64/kvm/handle_exit.c +1 −1
  122. arch/arm64/kvm/hyp/entry.S +9 −6
  123. arch/arm64/kvm/hyp/hyp-entry.S +41 −24
  124. arch/arm64/kvm/hyp/include/hyp/debug-sr.h +30 −30
  125. arch/arm64/kvm/hyp/include/hyp/switch.h +35 −4
  126. arch/arm64/kvm/hyp/nvhe/switch.c +5 −0
  127. arch/arm64/kvm/hyp/vgic-v3-sr.c +8 −8
  128. arch/arm64/kvm/hyp/vhe/switch.c +5 −0
  129. arch/arm64/kvm/mmu.c +14 −5
  130. arch/arm64/mm/context.c +1 −1
  131. arch/c6x/kernel/signal.c +2 −2
  132. arch/csky/kernel/signal.c +1 −1
  133. arch/h8300/kernel/signal.c +1 −1
  134. arch/hexagon/kernel/module.c +1 −1
  135. arch/hexagon/kernel/signal.c +1 −1
  136. arch/ia64/include/asm/pgtable.h +9 −0
  137. arch/ia64/kernel/crash.c +1 −1
  138. arch/ia64/kernel/ia64_ksyms.c +1 −1
  139. arch/ia64/kernel/module.c +1 −1
  140. arch/ia64/kernel/perfmon.c +1 −1
  141. arch/ia64/kernel/signal.c +1 −1
  142. arch/ia64/kernel/unaligned.c +3 −3
  143. arch/ia64/kernel/unwind.c +1 −1
  144. arch/m68k/atari/atakeyb.c +1 −1
  145. arch/m68k/kernel/signal.c +1 −1
  146. arch/m68k/mac/config.c +1 −1
  147. arch/m68k/mac/via.c +1 −1
  148. arch/m68k/mm/fault.c +1 −1
  149. arch/microblaze/kernel/signal.c +1 −1
  150. arch/microblaze/mm/init.c +3 −0
  151. arch/mips/include/asm/irqflags.h +5 −0
  152. arch/mips/include/asm/kvm_host.h +1 −1
  153. arch/mips/include/asm/mach-loongson64/cpu-feature-overrides.h +0 −2
  154. arch/mips/include/asm/mach-loongson64/irq.h +0 −2
  155. arch/mips/include/asm/mach-loongson64/mmzone.h +0 −1
  156. arch/mips/include/asm/unroll.h +32 −32
  157. arch/mips/kernel/perf_event_mipsxx.c +2 −2
  158. arch/mips/kernel/smp-bmips.c +2 −0
  159. arch/mips/kernel/traps.c +12 −0
  160. arch/mips/kvm/mmu.c +2 −1
  161. arch/mips/mm/c-r4k.c +4 −0
  162. arch/mips/oprofile/op_model_mipsxx.c +3 −1
  163. arch/mips/sni/a20r.c +2 −2
  164. arch/nds32/include/asm/irqflags.h +5 −0
  165. arch/nds32/kernel/fpu.c +6 −6
  166. arch/nds32/kernel/signal.c +2 −2
  167. arch/openrisc/kernel/signal.c +1 −1
  168. arch/parisc/kernel/signal.c +1 −1
  169. arch/parisc/kernel/traps.c +5 −6
  170. arch/parisc/mm/fault.c +2 −2
  171. arch/powerpc/Kconfig +12 −0
  172. arch/powerpc/include/asm/book3s/64/pgtable.h +3 −5
  173. arch/powerpc/include/asm/cputable.h +10 −5
  174. arch/powerpc/include/asm/fixmap.h +1 −1
  175. arch/powerpc/include/asm/hw_irq.h +4 −7
  176. arch/powerpc/include/asm/kasan.h +8 −1
  177. arch/powerpc/include/asm/kvm_host.h +2 −1
  178. arch/powerpc/include/asm/mce.h +7 −0
  179. arch/powerpc/include/asm/mman.h +27 −4
  180. arch/powerpc/include/asm/nohash/64/pgtable.h +2 −0
  181. arch/powerpc/include/asm/perf_event.h +3 −0
  182. arch/powerpc/include/asm/perf_event_server.h +5 −0
  183. arch/powerpc/include/uapi/asm/mman.h +1 −1
  184. arch/powerpc/include/uapi/asm/perf_regs.h +19 −1
  185. arch/powerpc/kernel/cputable.c +19 −3
  186. arch/powerpc/kernel/dt_cpu_ftrs.c +1 −5
  187. arch/powerpc/kernel/entry_64.S +4 −0
  188. arch/powerpc/kernel/process.c +9 −3
  189. arch/powerpc/kernel/setup-common.c +1 −0
  190. arch/powerpc/kvm/book3s.c +2 −1
  191. arch/powerpc/kvm/e500_mmu_host.c +2 −1
  192. arch/powerpc/mm/book3s32/mmu.c +8 −1
  193. arch/powerpc/mm/book3s64/hash_utils.c +5 −1
  194. arch/powerpc/net/bpf_jit_comp.c +1 −1
  195. arch/powerpc/perf/core-book3s.c +19 −5
  196. arch/powerpc/perf/hv-24x7.c +10 −1
  197. arch/powerpc/perf/imc-pmu.c +2 −2
  198. arch/powerpc/perf/perf_regs.c +41 −3
  199. arch/powerpc/perf/power10-pmu.c +6 −0
  200. arch/powerpc/perf/power9-pmu.c +6 −0
  201. arch/powerpc/platforms/Kconfig.cputype +1 −1
  202. arch/powerpc/platforms/powernv/idle.c +1 −1
  203. arch/powerpc/platforms/powernv/pci-ioda.c +1 −1
  204. arch/powerpc/platforms/pseries/hotplug-cpu.c +12 −6
  205. arch/powerpc/platforms/pseries/ras.c +0 −1
  206. arch/riscv/Kconfig +1 −1
  207. arch/riscv/Kconfig.socs +2 −0
  208. arch/riscv/configs/nommu_virt_defconfig +2 −5
  209. arch/riscv/configs/rv32_defconfig +5 −0
  210. arch/riscv/include/asm/clint.h +0 −39
  211. arch/riscv/include/asm/smp.h +19 −0
  212. arch/riscv/include/asm/timex.h +7 −21
  213. arch/riscv/kernel/Makefile +1 −1
  214. arch/riscv/kernel/clint.c +0 −44
  215. arch/riscv/kernel/sbi.c +14 −0
  216. arch/riscv/kernel/setup.c +0 −2
  217. arch/riscv/kernel/signal.c +1 −1
  218. arch/riscv/kernel/smp.c +24 −20
  219. arch/riscv/kernel/smpboot.c +1 −3
  220. arch/riscv/net/bpf_jit_comp32.c +2 −2
  221. arch/s390/Kconfig +1 −1
  222. arch/s390/configs/debug_defconfig +4 −0
  223. arch/s390/configs/defconfig +3 −0
  224. arch/s390/configs/zfcpdump_defconfig +1 −0
  225. arch/s390/include/asm/percpu.h +14 −14
  226. arch/s390/kernel/idle.c +1 −2
  227. arch/s390/kernel/ptrace.c +5 −2
  228. arch/s390/kernel/runtime_instr.c +1 −1
  229. arch/s390/mm/vmem.c +1 −0
  230. arch/s390/pci/pci.c +15 −7
  231. arch/s390/pci/pci_bus.c +30 −22
  232. arch/s390/pci/pci_bus.h +13 −0
  233. arch/s390/pci/pci_event.c +5 −2
  234. arch/sh/drivers/platform_early.c +1 −1
  235. arch/sh/kernel/disassemble.c +2 −2
  236. arch/sh/kernel/kgdb.c +1 −1
  237. arch/sh/kernel/signal_32.c +1 −1
  238. arch/sparc/kernel/auxio_64.c +0 −1
  239. arch/sparc/kernel/central.c +1 −1
  240. arch/sparc/kernel/kgdb_32.c +1 −1
  241. arch/sparc/kernel/kgdb_64.c +1 −1
  242. arch/sparc/kernel/pcr.c +1 −1
  243. arch/sparc/kernel/prom_32.c +1 −1
  244. arch/sparc/kernel/signal32.c +2 −2
  245. arch/sparc/kernel/signal_32.c +2 −2
  246. arch/sparc/kernel/signal_64.c +2 −2
  247. arch/sparc/math-emu/math_32.c +4 −4
  248. arch/sparc/net/bpf_jit_comp_32.c +1 −1
  249. arch/um/kernel/signal.c +1 −1
  250. arch/x86/boot/cmdline.c +2 −2
  251. arch/x86/boot/compressed/kaslr.c +1 −1
  252. arch/x86/boot/compressed/misc.c +2 −5
  253. arch/x86/boot/string.h +1 −4
  254. arch/x86/entry/calling.h +6 −4
  255. arch/x86/entry/common.c +20 −9
  256. arch/x86/entry/thunk_32.S +0 −5
  257. arch/x86/events/intel/core.c +3 −3
  258. arch/x86/events/intel/lbr.c +1 −1
  259. arch/x86/events/intel/uncore_snb.c +49 −3
  260. arch/x86/include/asm/efi.h +0 −10
  261. arch/x86/include/asm/entry-common.h +10 −2
  262. arch/x86/include/asm/kvm_host.h +2 −1
  263. arch/x86/include/asm/mmu.h +1 −0
  264. arch/x86/include/asm/ptrace.h +1 −1
  265. arch/x86/kernel/alternative.c +1 −1
  266. arch/x86/kernel/apic/io_apic.c +2 −2
  267. arch/x86/kernel/apic/probe_32.c +1 −1
  268. arch/x86/kernel/apic/vector.c +9 −7
  269. arch/x86/kernel/cpu/cacheinfo.c +1 −1
  270. arch/x86/kernel/cpu/mce/inject.c +1 −1
  271. arch/x86/kernel/cpu/mce/intel.c +1 −1
  272. arch/x86/kernel/cpu/mtrr/cyrix.c +1 −1
  273. arch/x86/kernel/hw_breakpoint.c +1 −1
  274. arch/x86/kernel/kgdb.c +2 −2
  275. arch/x86/kernel/mpparse.c +2 −2
  276. arch/x86/kernel/process.c +0 −4
  277. arch/x86/kernel/ptrace.c +1 −1
  278. arch/x86/kernel/reboot.c +1 −1
  279. arch/x86/kernel/signal.c +1 −1
  280. arch/x86/kernel/smpboot.c +20 −6
  281. arch/x86/kernel/traps.c +31 −34
  282. arch/x86/kernel/uprobes.c +2 −2
  283. arch/x86/kvm/emulate.c +1 −1
  284. arch/x86/kvm/hyperv.c +1 −1
  285. arch/x86/kvm/irq_comm.c +1 −1
  286. arch/x86/kvm/lapic.c +3 −3
  287. arch/x86/kvm/mmu/mmu.c +3 −2
  288. arch/x86/kvm/svm/svm.c +1 −1
  289. arch/x86/kvm/vmx/vmx.c +6 −6
  290. arch/x86/kvm/x86.c +8 −9
  291. arch/x86/lib/Makefile +1 −1
  292. arch/x86/lib/cmdline.c +4 −4
  293. arch/x86/lib/insn-eval.c +2 −4
  294. arch/x86/math-emu/errors.c +1 −1
  295. arch/x86/math-emu/fpu_trig.c +1 −1
  296. arch/x86/mm/fault.c +78 −0
  297. arch/x86/mm/ioremap.c +1 −1
  298. arch/x86/mm/numa_emulation.c +1 −1
  299. arch/x86/mm/tlb.c +2 −11
  300. arch/x86/pci/xen.c +1 −0
  301. arch/x86/platform/efi/efi.c +0 −69
  302. arch/x86/platform/efi/efi_32.c +37 −7
  303. arch/x86/platform/efi/efi_64.c +2 −0
  304. arch/xtensa/kernel/signal.c +1 −1
  305. block/badblocks.c +1 −1
  306. block/bfq-cgroup.c +1 −1
  307. block/bfq-iosched.c +2 −2
  308. block/bfq-iosched.h +0 −1
  309. block/bfq-wf2q.c +2 −10
  310. block/bio.c +5 −5
  311. block/blk-cgroup.c +5 −3
  312. block/blk-core.c +1 −0
  313. block/blk-iocost.c +3 −2
  314. block/blk-merge.c +10 −3
  315. block/blk-mq-sched.c +9 −0
  316. block/blk-mq.c +12 −1
  317. block/blk-stat.c +11 −6
  318. block/blk-wbt.c +1 −1
  319. block/bsg-lib.c +1 −1
  320. block/ioprio.c +1 −1
  321. block/partitions/core.c +22 −15
  322. crypto/af_alg.c +10 −3
  323. crypto/drbg.c +1 −1
  324. crypto/tcrypt.c +57 −57
  325. drivers/accessibility/braille/braille_console.c +1 −1
  326. drivers/accessibility/speakup/Kconfig +9 −4
  327. drivers/accessibility/speakup/Makefile +1 −1
  328. drivers/accessibility/speakup/serialio.c +5 −3
  329. drivers/accessibility/speakup/spk_priv.h +0 −1
  330. drivers/accessibility/speakup/spk_ttyio.c +7 −0
  331. drivers/accessibility/speakup/spk_types.h +1 −0
  332. drivers/accessibility/speakup/synth.c +1 −1
  333. drivers/acpi/acpi_apd.c +2 −2
  334. drivers/acpi/osl.c +19 −4
  335. drivers/ata/ahci.c +1 −2
  336. drivers/ata/ahci_brcm.c +1 −1
  337. drivers/ata/libahci_platform.c +1 −1
  338. drivers/ata/libata-core.c +10 −11
  339. drivers/ata/libata-eh.c +3 −3
  340. drivers/ata/libata-scsi.c +9 −3
  341. drivers/ata/pata_atp867x.c +2 −2
  342. drivers/ata/pata_serverworks.c +1 −1
  343. drivers/ata/sata_mv.c +6 −6
  344. drivers/ata/sata_promise.c +4 −4
  345. drivers/ata/sata_sx4.c +1 −1
  346. drivers/atm/firestream.c +2 −1
  347. drivers/atm/fore200e.c +8 −8
  348. drivers/atm/he.c +2 −2
  349. drivers/atm/idt77105.c +1 −1
  350. drivers/atm/lanai.c +1 −1
  351. drivers/atm/zatm.c +1 −1
  352. drivers/auxdisplay/arm-charlcd.c +1 −1
  353. drivers/auxdisplay/panel.c +3 −3
  354. drivers/base/core.c +8 −4
  355. drivers/base/firmware_loader/fallback.c +2 −2
  356. drivers/base/power/main.c +10 −6
  357. drivers/block/aoe/aoecmd.c +1 −1
  358. drivers/block/ataflop.c +1 −1
  359. drivers/block/drbd/drbd_int.h +1 −1
  360. drivers/block/drbd/drbd_main.c +1 −1
  361. drivers/block/drbd/drbd_nl.c +1 −1
  362. drivers/block/drbd/drbd_receiver.c +6 −6
  363. drivers/block/drbd/drbd_req.c +2 −2
  364. drivers/block/floppy.c +2 −2
  365. drivers/block/loop.c +22 −19
  366. drivers/block/nbd.c +2 −0
  367. drivers/block/null_blk_main.c +1 −1
  368. drivers/block/paride/pd.c +2 −2
  369. drivers/block/pktcdvd.c +1 −1
  370. drivers/block/rbd.c +4 −4
  371. drivers/block/rnbd/rnbd-srv.c +2 −1
  372. drivers/block/rsxx/core.c +1 −1
  373. drivers/block/skd_main.c +1 −1
  374. drivers/block/virtio_blk.c +23 −8
  375. drivers/block/xen-blkback/blkback.c +1 −1
  376. drivers/block/xen-blkback/xenbus.c +1 −1
  377. drivers/block/xen-blkfront.c +2 −3
  378. drivers/bus/ti-sysc.c +1 −1
  379. drivers/char/agp/ali-agp.c +1 −1
  380. drivers/char/hw_random/ingenic-rng.c +2 −7
  381. drivers/char/ipmi/kcs_bmc.c +1 −1
  382. drivers/char/lp.c +2 −2
  383. drivers/char/mem.c +1 −1
  384. drivers/char/nvram.c +1 −1
  385. drivers/clocksource/Kconfig +10 −2
  386. drivers/clocksource/Makefile +1 −0
  387. drivers/clocksource/timer-cadence-ttc.c +2 −2
  388. drivers/clocksource/timer-clint.c +226 −0
  389. drivers/clocksource/timer-riscv.c +2 −15
  390. drivers/cpufreq/cpufreq.c +1 −2
  391. drivers/cpufreq/intel_pstate.c +148 −88
  392. drivers/cpufreq/p4-clockmod.c +1 −1
  393. drivers/cpufreq/speedstep-lib.c +1 −1
  394. drivers/cpufreq/tegra194-cpufreq.c +7 −3
  395. drivers/cpufreq/ti-cpufreq.c +2 −2
  396. drivers/cpuidle/cpuidle.c +14 −5
  397. drivers/crypto/Kconfig +3 −0
  398. drivers/crypto/axis/artpec6_crypto.c +1 −1
  399. drivers/crypto/cavium/cpt/cptvf_reqmanager.c +2 −2
  400. drivers/crypto/chelsio/chcr_ktls.c +2 −2
  401. drivers/crypto/marvell/octeontx/otx_cptvf_reqmgr.c +2 −2
  402. drivers/crypto/qat/qat_common/adf_admin.c +4 −3
  403. drivers/crypto/qat/qat_common/adf_pf2vf_msg.c +1 −1
  404. drivers/crypto/qat/qat_common/qat_uclo.c +3 −3
  405. drivers/crypto/ux500/cryp/cryp.c +6 −6
  406. drivers/dax/device.c +1 −1
  407. drivers/dax/super.c +6 −0
  408. drivers/dma/acpi-dma.c +3 −1
  409. drivers/dma/amba-pl08x.c +5 −5
  410. drivers/dma/at_hdmac.c +9 −2
  411. drivers/dma/dma-jz4780.c +19 −19
  412. drivers/dma/dw-edma/dw-edma-core.c +6 −5
  413. drivers/dma/fsldma.c +1 −1
  414. drivers/dma/fsldma.h +6 −6
  415. drivers/dma/idxd/device.c +26 −0
  416. drivers/dma/idxd/irq.c +0 −12
  417. drivers/dma/imx-dma.c +1 −1
  418. drivers/dma/iop-adma.h +6 −6
  419. drivers/dma/nbpfaxi.c +1 −1
  420. drivers/dma/of-dma.c +4 −4
  421. drivers/dma/pl330.c +4 −8
  422. drivers/dma/sh/shdma-base.c +1 −1
  423. drivers/dma/ti/k3-udma.c +5 −5
  424. drivers/edac/amd64_edac.c +1 −1
  425. drivers/edac/ghes_edac.c +6 −4
  426. drivers/edac/i7core_edac.c +2 −2
  427. drivers/edac/pnd2_edac.c +2 −2
  428. drivers/edac/sb_edac.c +2 −2
  429. drivers/edac/skx_common.c +2 −2
  430. drivers/firewire/core-device.c +1 −1
  431. drivers/firewire/core-iso.c +1 −1
  432. drivers/firewire/core-topology.c +1 −1
  433. drivers/firewire/core-transaction.c +2 −2
  434. drivers/firewire/ohci.c +2 −2
  435. drivers/firmware/efi/efi.c +2 −0
  436. drivers/firmware/efi/libstub/efi-stub-helper.c +10 −2
  437. drivers/firmware/ti_sci.c +68 −87
  438. drivers/gpio/gpio-aspeed-sgpio.c +3 −3
  439. drivers/gpio/gpio-aspeed.c +3 −3
  440. drivers/gpio/gpio-ath79.c +1 −1
  441. drivers/gpio/gpio-eic-sprd.c +1 −3
  442. drivers/gpio/gpio-stmpe.c +2 −2
  443. drivers/gpio/gpiolib-acpi.c +1 −1
  444. drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10_3.c +1 −1
  445. drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c +22 −9
  446. drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c +5 −0
  447. drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +1 −2
  448. drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +0 −2
  449. drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +1 −1
  450. drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c +2 −4
  451. drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +1 −1
  452. drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +1 −0
  453. drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c +19 −0
  454. drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c +1 −1
  455. drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c +19 −0
  456. drivers/gpu/drm/amd/amdgpu/nv.c +1 −0
  457. drivers/gpu/drm/amd/amdgpu/psp_v11_0.c +1 −2
  458. drivers/gpu/drm/amd/amdgpu/si_dpm.c +1 −1
  459. drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +51 −43
  460. drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c +1 −1
  461. drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c +15 −1
  462. drivers/gpu/drm/amd/display/dc/bios/command_table2.c +28 −0
  463. drivers/gpu/drm/amd/display/dc/bios/command_table2.h +2 −1
  464. drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c +10 −0
  465. drivers/gpu/drm/amd/display/dc/core/dc_link.c +1 −1
  466. drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c +4 −4
  467. drivers/gpu/drm/amd/display/dc/dc_bios_types.h +4 −0
  468. drivers/gpu/drm/amd/display/dc/dc_stream.h +1 −1
  469. drivers/gpu/drm/amd/display/dc/dce/dce_panel_cntl.h +1 −1
  470. drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c +24 −0
  471. drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +31 −22
  472. drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c +8 −0
  473. drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.c +8 −8
  474. drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.h +14 −0
  475. drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c +2 −2
  476. drivers/gpu/drm/amd/display/dc/dcn20/dcn20_link_encoder.h +3 −1
  477. drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +1 −1
  478. drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dio_link_encoder.h +4 −1
  479. drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c +1 −0
  480. drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c +4 −0
  481. drivers/gpu/drm/amd/display/dc/inc/hw/clk_mgr.h +2 −0
  482. drivers/gpu/drm/amd/display/include/bios_parser_types.h +7 −0
  483. drivers/gpu/drm/amd/display/include/fixed31_32.h +3 −0
  484. drivers/gpu/drm/amd/display/modules/freesync/freesync.c +29 −7
  485. drivers/gpu/drm/amd/powerplay/arcturus_ppt.c +13 −6
  486. drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c +3 −6
  487. drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c +2 −1
  488. drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c +22 −10
  489. drivers/gpu/drm/amd/powerplay/hwmgr/vega12_thermal.c +11 −10
  490. drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c +19 −25
  491. drivers/gpu/drm/amd/powerplay/hwmgr/vega20_thermal.c +11 −10
  492. drivers/gpu/drm/amd/powerplay/navi10_ppt.c +7 −3
  493. drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c +19 −6
  494. drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c +2 −0
  495. drivers/gpu/drm/arm/malidp_hw.c +3 −3
  496. drivers/gpu/drm/ast/ast_main.c +1 −1
  497. drivers/gpu/drm/bridge/nwl-dsi.c +0 −2
  498. drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c +2 −2
  499. drivers/gpu/drm/bridge/ti-sn65dsi86.c +3 −3
  500. drivers/gpu/drm/drm_atomic_helper.c +4 −3
  501. drivers/gpu/drm/drm_bufs.c +1 −1
  502. drivers/gpu/drm/drm_color_mgmt.c +1 −1
  503. drivers/gpu/drm/drm_crtc.c +1 −3
  504. drivers/gpu/drm/drm_dp_helper.c +1 −1
  505. drivers/gpu/drm/drm_dp_mst_topology.c +2 −2
  506. drivers/gpu/drm/drm_mode_object.c +2 −2
  507. drivers/gpu/drm/drm_modes.c +1 −1
  508. drivers/gpu/drm/drm_plane.c +1 −1
  509. drivers/gpu/drm/etnaviv/etnaviv_gpu.c +9 −2
  510. drivers/gpu/drm/etnaviv/etnaviv_sched.c +6 −5
  511. drivers/gpu/drm/exynos/exynos_drm_dsi.c +5 −5
  512. drivers/gpu/drm/exynos/exynos_drm_fbdev.c +1 −1
  513. drivers/gpu/drm/exynos/exynos_drm_gem.h +1 −1
  514. drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c +3 −3
  515. drivers/gpu/drm/i915/display/icl_dsi.c +3 −3
  516. drivers/gpu/drm/i915/display/intel_bios.c +3 −3
  517. drivers/gpu/drm/i915/display/intel_cdclk.c +5 −5
  518. drivers/gpu/drm/i915/display/intel_combo_phy.c +5 −5
  519. drivers/gpu/drm/i915/display/intel_ddi.c +2 −2
  520. drivers/gpu/drm/i915/display/intel_display.c +11 −11
  521. drivers/gpu/drm/i915/display/intel_display_debugfs.c +5 −2
  522. drivers/gpu/drm/i915/display/intel_display_power.c +7 −7
  523. drivers/gpu/drm/i915/display/intel_dpll_mgr.c +4 −4
  524. drivers/gpu/drm/i915/display/intel_hdcp.c +26 −6
  525. drivers/gpu/drm/i915/display/intel_panel.c +1 −1
  526. drivers/gpu/drm/i915/display/intel_sdvo.c +6 −6
  527. drivers/gpu/drm/i915/display/intel_sprite.c +11 −11
  528. drivers/gpu/drm/i915/display/intel_tc.c +1 −1
  529. drivers/gpu/drm/i915/gem/i915_gem_mman.c +1 −1
  530. drivers/gpu/drm/i915/gem/i915_gem_pages.c +1 −1
  531. drivers/gpu/drm/i915/gem/i915_gem_stolen.c +3 −3
  532. drivers/gpu/drm/i915/gem/i915_gem_userptr.c +0 −8
  533. drivers/gpu/drm/i915/gt/intel_engine_cs.c +1 −1
  534. drivers/gpu/drm/i915/gt/intel_ggtt.c +1 −1
  535. drivers/gpu/drm/i915/gt/intel_ring_submission.c +1 −1
  536. drivers/gpu/drm/i915/gvt/cfg_space.c +24 −0
  537. drivers/gpu/drm/i915/gvt/gtt.c +1 −1
  538. drivers/gpu/drm/i915/gvt/gtt.h +2 −0
  539. drivers/gpu/drm/i915/gvt/gvt.h +3 −0
  540. drivers/gpu/drm/i915/gvt/handlers.c +1 −1
  541. drivers/gpu/drm/i915/gvt/vgpu.c +17 −3
  542. drivers/gpu/drm/i915/i915_cmd_parser.c +10 −4
  543. drivers/gpu/drm/i915/i915_gpu_error.c +1 −1
  544. drivers/gpu/drm/i915/i915_pmu.c +3 −6
  545. drivers/gpu/drm/i915/selftests/i915_buddy.c +10 −8
  546. drivers/gpu/drm/i915/selftests/mock_gem_device.c +3 −0
  547. drivers/gpu/drm/imx/ipuv3-plane.c +1 −1
  548. drivers/gpu/drm/meson/meson_osd_afbcd.c +1 −1
  549. drivers/gpu/drm/meson/meson_overlay.c +2 −2
  550. drivers/gpu/drm/msm/adreno/a5xx_gpu.c +2 −2
  551. drivers/gpu/drm/msm/adreno/a6xx_gmu.c +30 −10
  552. drivers/gpu/drm/msm/adreno/a6xx_gpu.c +1 −1
  553. drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c +2 −1
  554. drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h +1 −1
  555. drivers/gpu/drm/msm/adreno/adreno_device.c +4 −0
  556. drivers/gpu/drm/msm/adreno/adreno_gpu.c +2 −2
  557. drivers/gpu/drm/msm/adreno/adreno_gpu.h +2 −0
  558. drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c +1 −1
  559. drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c +11 −9
  560. drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c +2 −2
  561. drivers/gpu/drm/msm/msm_atomic.c +36 −0
  562. drivers/gpu/drm/msm/msm_drv.c +8 −0
  563. drivers/gpu/drm/msm/msm_ringbuffer.c +2 −1
  564. drivers/gpu/drm/nouveau/dispnv50/core507d.c +4 −1
  565. drivers/gpu/drm/nouveau/dispnv50/crcc37d.c +1 −1
  566. drivers/gpu/drm/nouveau/dispnv50/disp.c +6 −0
  567. drivers/gpu/drm/nouveau/include/nvif/push507c.h +1 −1
  568. drivers/gpu/drm/omapdrm/dss/venc.c +1 −1
  569. drivers/gpu/drm/omapdrm/omap_crtc.c +2 −1
  570. drivers/gpu/drm/radeon/ci_dpm.c +1 −1
  571. drivers/gpu/drm/radeon/r300.c +2 −2
  572. drivers/gpu/drm/radeon/r420.c +1 −1
  573. drivers/gpu/drm/radeon/r600_cs.c +2 −2
  574. drivers/gpu/drm/radeon/radeon_display.c +1 −1
  575. drivers/gpu/drm/radeon/radeon_uvd.c +1 −1
  576. drivers/gpu/drm/radeon/si_dpm.c +1 −1
  577. drivers/gpu/drm/radeon/uvd_v1_0.c +1 −1
  578. drivers/gpu/drm/savage/savage_state.c +5 −5
  579. drivers/gpu/drm/sti/sti_hdmi.c +3 −3
  580. drivers/gpu/drm/sun4i/sun4i_tcon.c +2 −2
  581. drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +1 −1
  582. drivers/gpu/drm/tegra/dc.c +1 −1
  583. drivers/gpu/drm/tilcdc/tilcdc_crtc.c +1 −1
  584. drivers/gpu/drm/ttm/ttm_bo_vm.c +1 −1
  585. drivers/gpu/drm/via/via_dmablit.c +4 −4
  586. drivers/gpu/drm/virtio/virtgpu_ioctl.c +1 −0
  587. drivers/gpu/drm/virtio/virtgpu_object.c +1 −0
  588. drivers/gpu/drm/xen/xen_drm_front.c +0 −3
  589. drivers/gpu/drm/xen/xen_drm_front_gem.c +5 −4
  590. drivers/gpu/ipu-v3/ipu-dc.c +1 −1
  591. drivers/hid/hid-core.c +13 −2
  592. drivers/hid/hid-cougar.c +1 −1
  593. drivers/hid/hid-elan.c +2 −0
  594. drivers/hid/hid-ids.h +6 −0
  595. drivers/hid/hid-input.c +4 −0
  596. drivers/hid/hid-lg-g15.c +1 −1
  597. drivers/hid/hid-logitech-dj.c +1 −1
  598. drivers/hid/hid-macally.c +1 −1
  599. drivers/hid/hid-microsoft.c +2 −3
  600. drivers/hid/hid-multitouch.c +2 −0
  601. drivers/hid/hid-quirks.c +5 −0
  602. drivers/hid/hid-rmi.c +0 −1
  603. drivers/hid/hid-roccat-kone.c +1 −1
  604. drivers/hid/hid-uclogic-params.c +1 −1
  605. drivers/hid/hid-wiimote-core.c +0 −2
  606. drivers/hid/i2c-hid/i2c-hid-core.c +13 −9
  607. drivers/hid/usbhid/hid-core.c +24 −29
  608. drivers/hid/usbhid/hiddev.c +4 −1
  609. drivers/hid/usbhid/usbhid.h +0 −2
  610. drivers/hid/wacom_wac.c +16 −16
  611. drivers/hsi/clients/ssi_protocol.c +3 −3
  612. drivers/hsi/controllers/omap_ssi_core.c +1 −1
  613. drivers/hv/hv_kvp.c +1 −1
  614. drivers/hv/hv_util.c +51 −14
  615. drivers/hwmon/adt7462.c +4 −4
  616. drivers/hwmon/applesmc.c +16 −15
  617. drivers/hwmon/emc1403.c +2 −2
  618. drivers/hwmon/f71882fg.c +2 −2
  619. drivers/hwmon/gsc-hwmon.c +1 −0
  620. drivers/hwmon/hwmon-vid.c +2 −2
  621. drivers/hwmon/ina3221.c +1 −1
  622. drivers/hwmon/nct6775.c +1 −1
  623. drivers/hwmon/nct7904.c +2 −2
  624. drivers/hwmon/occ/common.c +3 −3
  625. drivers/hwmon/pmbus/isl68137.c +6 −1
  626. drivers/hwmon/w83627hf.c +1 −1
  627. drivers/hwmon/w83781d.c +1 −1
  628. drivers/hwmon/w83795.c +1 −1
  629. drivers/hwtracing/coresight/coresight-cpu-debug.c +2 −2
  630. drivers/hwtracing/coresight/coresight-etm4x.c +0 −1
  631. drivers/hwtracing/coresight/coresight-tmc.c +0 −2
  632. drivers/hwtracing/intel_th/sth.c +2 −2
  633. drivers/i2c/busses/i2c-bcm-iproc.c +2 −2
  634. drivers/i2c/busses/i2c-omap.c +0 −1
  635. drivers/i2c/busses/i2c-opal.c +1 −1
  636. drivers/i2c/busses/i2c-rcar.c +1 −0
  637. drivers/i2c/i2c-core-acpi.c +0 −10
  638. drivers/i2c/i2c-core-base.c +1 −1
  639. drivers/i2c/i2c-core.h +0 −9
  640. drivers/i3c/master/dw-i3c-master.c +1 −1
  641. drivers/ide/hpt366.c +3 −3
  642. drivers/ide/ide-cd.c +2 −2
  643. drivers/ide/ide-floppy.c +1 −1
  644. drivers/ide/ide-probe.c +1 −1
  645. drivers/ide/ide-taskfile.c +6 −6
  646. drivers/ide/sis5513.c +1 −1
  647. drivers/idle/intel_idle.c +0 −16
  648. drivers/iio/accel/mma8452.c +1 −1
  649. drivers/iio/adc/ab8500-gpadc.c +1 −1
  650. drivers/iio/adc/cpcap-adc.c +1 −1
  651. drivers/iio/chemical/sps30.c +1 −1
  652. drivers/iio/dac/ad5592r-base.c +0 −2
  653. drivers/iio/dac/dpot-dac.c +3 −2
  654. drivers/iio/health/max30102.c +2 −2
  655. drivers/iio/imu/adis.c +3 −3
  656. drivers/iio/industrialio-core.c +2 −2
  657. drivers/iio/light/si1145.c +1 −1
  658. drivers/iio/magnetometer/ak8974.c +1 −1
  659. drivers/infiniband/core/cm.c +6 −6
  660. drivers/infiniband/core/cma.c +2 −1
  661. drivers/infiniband/core/device.c +1 −1
  662. drivers/infiniband/core/rw.c +0 −1
  663. drivers/infiniband/core/ucma.c +2 −2
  664. drivers/infiniband/core/uverbs_ioctl.c +2 −2
  665. drivers/infiniband/hw/bnxt_re/ib_verbs.c +1 −1
  666. drivers/infiniband/hw/bnxt_re/main.c +2 −1
  667. drivers/infiniband/hw/bnxt_re/qplib_fp.c +1 −1
  668. drivers/infiniband/hw/cxgb4/cm.c +2 −2
  669. drivers/infiniband/hw/cxgb4/qp.c +1 −1
  670. drivers/infiniband/hw/hfi1/pio_copy.c +0 −1
  671. drivers/infiniband/hw/hfi1/tid_rdma.c +1 −0
  672. drivers/infiniband/hw/hns/hns_roce_device.h +0 −2
  673. drivers/infiniband/hw/hns/hns_roce_hw_v1.c +1 −1
  674. drivers/infiniband/hw/hns/hns_roce_hw_v2.c +4 −5
  675. drivers/infiniband/hw/hns/hns_roce_hw_v2.h +1 −3
  676. drivers/infiniband/hw/hns/hns_roce_qp.c +2 −3
  677. drivers/infiniband/hw/hns/hns_roce_srq.c +1 −1
  678. drivers/infiniband/hw/i40iw/i40iw_cm.c +1 −1
  679. drivers/infiniband/hw/i40iw/i40iw_ctrl.c +2 −3
  680. drivers/infiniband/hw/i40iw/i40iw_hw.c +1 −2
  681. drivers/infiniband/hw/i40iw/i40iw_main.c +10 −12
  682. drivers/infiniband/hw/i40iw/i40iw_puda.c +2 −2
  683. drivers/infiniband/hw/i40iw/i40iw_utils.c +3 −5
  684. drivers/infiniband/hw/i40iw/i40iw_verbs.c +2 −3
  685. drivers/infiniband/hw/mlx4/cq.c +2 −2
  686. drivers/infiniband/hw/mlx4/mcg.c +1 −1
  687. drivers/infiniband/hw/mlx4/qp.c +3 −3
  688. drivers/infiniband/hw/mlx5/cq.c +2 −2
  689. drivers/infiniband/hw/mlx5/mad.c +1 −2
  690. drivers/infiniband/hw/mlx5/main.c +1 −1
  691. drivers/infiniband/hw/mlx5/qp.c +2 −2
  692. drivers/infiniband/hw/mthca/mthca_av.c +1 −1
  693. drivers/infiniband/hw/ocrdma/ocrdma_verbs.c +2 −2
  694. drivers/infiniband/hw/qedr/verbs.c +1 −1
  695. drivers/infiniband/hw/qib/qib_iba6120.c +2 −2
  696. drivers/infiniband/hw/qib/qib_iba7220.c +2 −2
  697. drivers/infiniband/hw/qib/qib_iba7322.c +3 −3
  698. drivers/infiniband/hw/qib/qib_mad.c +6 −6
  699. drivers/infiniband/hw/qib/qib_rc.c +9 −9
  700. drivers/infiniband/hw/qib/qib_sdma.c +1 −1
  701. drivers/infiniband/hw/qib/qib_uc.c +4 −4
  702. drivers/infiniband/hw/qib/qib_verbs.c +1 −1
  703. drivers/infiniband/hw/usnic/usnic_ib_main.c +1 −1
  704. drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c +1 −1
  705. drivers/infiniband/sw/rdmavt/qp.c +1 −1
  706. drivers/infiniband/sw/rxe/rxe_comp.c +1 −1
  707. drivers/infiniband/sw/rxe/rxe_task.c +1 −1
  708. drivers/infiniband/sw/rxe/rxe_verbs.c +1 −1
  709. drivers/infiniband/sw/siw/siw_cm.c +0 −2
  710. drivers/infiniband/sw/siw/siw_qp_rx.c +2 −2
  711. drivers/infiniband/sw/siw/siw_qp_tx.c +2 −2
  712. drivers/infiniband/ulp/ipoib/ipoib_cm.c +2 −2
  713. drivers/infiniband/ulp/ipoib/ipoib_main.c +1 −1
  714. drivers/infiniband/ulp/iser/iser_verbs.c +1 −1
  715. drivers/infiniband/ulp/isert/ib_isert.c +5 −5
  716. drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c +0 −1
  717. drivers/input/joystick/fsia6b.c +2 −2
  718. drivers/input/joystick/gamecon.c +0 −1
  719. drivers/input/tablet/wacom_serial4.c +1 −1
  720. drivers/input/touchscreen/atmel_mxt_ts.c +1 −1
  721. drivers/input/touchscreen/wm831x-ts.c +1 −1
  722. drivers/iommu/amd/Kconfig +1 −1
  723. drivers/iommu/amd/init.c +20 −3
  724. drivers/iommu/amd/iommu.c +21 −5
  725. drivers/iommu/amd/iommu_v2.c +7 −0
  726. drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +5 −6
  727. drivers/iommu/dma-iommu.c +2 −2
  728. drivers/iommu/intel/iommu.c +62 −53
  729. drivers/iommu/intel/irq_remapping.c +8 −2
  730. drivers/iommu/virtio-iommu.c +1 −1
  731. drivers/irqchip/Kconfig +1 −1
  732. drivers/irqchip/irq-gic-v3-its.c +2 −2
  733. drivers/irqchip/irq-gic-v3.c +4 −4
  734. drivers/irqchip/irq-imx-gpcv2.c +1 −1
  735. drivers/irqchip/irq-ingenic.c +1 −1
  736. drivers/irqchip/irq-mips-gic.c +1 −1
  737. drivers/irqchip/irq-mtk-cirq.c +1 −3
  738. drivers/irqchip/irq-mtk-sysirq.c +1 −3
  739. drivers/irqchip/irq-stm32-exti.c +12 −2
  740. drivers/irqchip/irq-ti-sci-inta.c +79 −16
  741. drivers/irqchip/irq-ti-sci-intr.c +93 −59
  742. drivers/irqchip/irq-vic.c +1 −1
  743. drivers/irqchip/irqchip.c +1 −1
  744. drivers/irqchip/qcom-pdc.c +1 −7
  745. drivers/isdn/hardware/mISDN/avmfritz.c +1 −1
  746. drivers/isdn/hardware/mISDN/hfc_multi_8xx.h +0 −1
  747. drivers/isdn/hardware/mISDN/hfcpci.c +1 −1
  748. drivers/isdn/hardware/mISDN/hfcsusb.c +1 −1
  749. drivers/isdn/hardware/mISDN/isdnhdlc.c +1 −1
  750. drivers/isdn/hardware/mISDN/mISDNinfineon.c +1 −1
  751. drivers/isdn/hardware/mISDN/mISDNisar.c +4 −4
  752. drivers/isdn/mISDN/stack.c +1 −1
  753. drivers/lightnvm/pblk-core.c +1 −1
  754. drivers/macintosh/adbhid.c +1 −1
  755. drivers/macintosh/smu.c +1 −1
  756. drivers/md/bcache/journal.c +1 −1
  757. drivers/md/bcache/util.c +7 −7
  758. drivers/md/dm-cache-metadata.c +6 −2
  759. drivers/md/dm-crypt.c +3 −3
  760. drivers/md/dm-integrity.c +12 −0
  761. drivers/md/dm-mpath.c +16 −8
  762. drivers/md/dm-thin-metadata.c +7 −3
  763. drivers/md/dm-writecache.c +10 −2
  764. drivers/md/dm.c +1 −1
  765. drivers/md/md-autodetect.c +2 −2
  766. drivers/md/md-bitmap.c +1 −1
  767. drivers/md/persistent-data/dm-block-manager.c +8 −6
  768. drivers/md/raid5.c +7 −4
  769. drivers/media/common/v4l2-tpg/v4l2-tpg-core.c +18 −18
  770. drivers/media/dvb-core/dvb_net.c +1 −1
  771. drivers/media/dvb-frontends/bcm3510.c +1 −1
  772. drivers/media/dvb-frontends/dib0090.c +1 −1
  773. drivers/media/dvb-frontends/dib3000mb.c +1 −1
  774. drivers/media/dvb-frontends/dib7000p.c +1 −1
  775. drivers/media/dvb-frontends/drx39xyj/drxj.c +56 −47
  776. drivers/media/dvb-frontends/drxd_hard.c +6 −6
  777. drivers/media/dvb-frontends/drxk_hard.c +12 −12
  778. drivers/media/dvb-frontends/lgdt3306a.c +1 −1
  779. drivers/media/dvb-frontends/mt352.c +1 −1
  780. drivers/media/dvb-frontends/mxl5xx.c +1 −1
  781. drivers/media/dvb-frontends/or51132.c +1 −1
  782. drivers/media/dvb-frontends/s5h1411.c +1 −1
  783. drivers/media/dvb-frontends/zl10353.c +2 −2
  784. drivers/media/i2c/Kconfig +2 −2
  785. drivers/media/pci/cx23885/cx23885-cards.c +2 −2
  786. drivers/media/pci/ddbridge/ddbridge-core.c +12 −11
  787. drivers/media/pci/meye/meye.c +1 −1
  788. drivers/media/pci/ttpci/av7110.c +2 −2
  789. drivers/media/pci/ttpci/av7110_hw.c +1 −1
  790. drivers/media/pci/ttpci/av7110_ipack.c +1 −1
  791. drivers/media/pci/ttpci/budget-av.c +1 −1
  792. drivers/media/pci/ttpci/budget.c +2 −2
  793. drivers/media/platform/sh_vou.c +2 −2
  794. drivers/media/platform/ti-vpe/cal.h +1 −1
  795. drivers/media/radio/radio-si476x.c +2 −1
  796. drivers/media/radio/tea575x.c +1 −1
  797. drivers/media/rc/bpf-lirc.c +1 −1
  798. drivers/media/rc/gpio-ir-tx.c +5 −11
  799. drivers/media/rc/ir-rc6-decoder.c +1 −1
  800. drivers/media/rc/ir-sony-decoder.c +1 −1
  801. drivers/media/rc/mceusb.c +1 −1
  802. drivers/media/rc/rc-main.c +28 −16
  803. drivers/media/test-drivers/vicodec/vicodec-core.c +1 −0
  804. drivers/media/tuners/xc5000.c +1 −1
  805. drivers/media/usb/b2c2/flexcop-usb.c +1 −1
  806. drivers/media/usb/cpia2/cpia2_core.c +18 −18
  807. drivers/media/usb/cx231xx/cx231xx-video.c +1 −1
  808. drivers/media/usb/dvb-usb/dib0700_devices.c +6 −6
  809. drivers/media/usb/dvb-usb/dw2102.c +3 −3
  810. drivers/media/v4l2-core/v4l2-ctrls.c +1 −1
  811. drivers/media/v4l2-core/v4l2-ioctl.c +27 −25
  812. drivers/media/v4l2-core/videobuf-core.c +1 −1
  813. drivers/memory/omap-gpmc.c +0 −1
  814. drivers/memstick/core/ms_block.c +6 −6
  815. drivers/memstick/host/jmb38x_ms.c +2 −2
  816. drivers/memstick/host/tifm_ms.c +2 −2
  817. drivers/message/fusion/mptbase.c +3 −3
  818. drivers/message/fusion/mptsas.c +1 −1
  819. drivers/message/fusion/mptscsih.c +2 −2
  820. drivers/mfd/db8500-prcmu.c +2 −2
  821. drivers/mfd/iqs62x.c +3 −3
  822. drivers/mfd/mfd-core.c +6 −6
  823. drivers/mfd/mxs-lradc.c +1 −1
  824. drivers/mfd/omap-usb-host.c +2 −2
  825. drivers/mfd/rave-sp.c +2 −2
  826. drivers/mfd/syscon.c +1 −1
  827. drivers/misc/eeprom/at25.c +5 −5
  828. drivers/misc/habanalabs/common/command_buffer.c +14 −2
  829. drivers/misc/habanalabs/common/command_submission.c +8 −0
  830. drivers/misc/habanalabs/common/debugfs.c +4 −4
  831. drivers/misc/habanalabs/common/device.c +7 −2
  832. drivers/misc/habanalabs/common/firmware_if.c +9 −0
  833. drivers/misc/habanalabs/common/habanalabs.h +5 −2
  834. drivers/misc/habanalabs/common/memory.c +7 −2
  835. drivers/misc/habanalabs/common/mmu.c +1 −1
  836. drivers/misc/habanalabs/common/pci.c +5 −3
  837. drivers/misc/habanalabs/common/sysfs.c +4 −3
  838. drivers/misc/habanalabs/gaudi/gaudi.c +67 −25
  839. drivers/misc/habanalabs/gaudi/gaudiP.h +2 −1
  840. drivers/misc/habanalabs/gaudi/gaudi_coresight.c +7 −1
  841. drivers/misc/habanalabs/goya/goya.c +31 −0
  842. drivers/misc/habanalabs/goya/goya_coresight.c +7 −1
  843. drivers/misc/mei/hdcp/mei_hdcp.c +24 −16
  844. drivers/misc/mic/scif/scif_api.c +2 −2
  845. drivers/misc/mic/scif/scif_rma.c +1 −1
  846. drivers/misc/sgi-gru/grukservices.c +2 −2
  847. drivers/misc/sgi-xp/xpc_main.c +2 −2
  848. drivers/misc/sgi-xp/xpc_partition.c +2 −2
  849. drivers/misc/sgi-xp/xpc_uv.c +1 −1
  850. drivers/mmc/core/host.c +1 −1
  851. drivers/mmc/host/atmel-mci.c +4 −4
  852. drivers/mmc/host/davinci_mmc.c +1 −1
  853. drivers/mmc/host/dw_mmc-k3.c +1 −1
  854. drivers/mmc/host/dw_mmc.c +3 −3
  855. drivers/mmc/host/jz4740_mmc.c +2 −2
  856. drivers/mmc/host/meson-mx-sdio.c +1 −1
  857. drivers/mmc/host/mtk-sd.c +13 −0
  858. drivers/mmc/host/renesas_sdhi_core.c +1 −1
  859. drivers/mmc/host/sdhci-acpi.c +57 −10
  860. drivers/mmc/host/sdhci-esdhc-imx.c +1 −1
  861. drivers/mmc/host/sdhci-pci-core.c +9 −1
  862. drivers/mmc/host/sdhci-s3c.c +1 −1
  863. drivers/mmc/host/sdhci-sprd.c +1 −1
  864. drivers/mmc/host/sdhci-tegra.c +51 −4
  865. drivers/mmc/host/sdhci-xenon-phy.c +1 −1
  866. drivers/mmc/host/sdhci.c +1 −1
  867. drivers/mmc/host/tifm_sd.c +1 −1
  868. drivers/mmc/host/usdhi6rol0.c +3 −3
  869. drivers/mux/adgs1408.c +1 −1
  870. drivers/net/appletalk/cops.c +1 −1
  871. drivers/net/arcnet/arc-rimi.c +3 −3
  872. drivers/net/arcnet/com20020-isa.c +6 −6
  873. drivers/net/arcnet/com90io.c +2 −2
  874. drivers/net/arcnet/com90xx.c +3 −3
  875. drivers/net/bonding/bond_3ad.c +10 −9
  876. drivers/net/bonding/bond_alb.c +2 −2
  877. drivers/net/bonding/bond_main.c +43 −11
  878. drivers/net/can/at91_can.c +2 −2
  879. drivers/net/can/peak_canfd/peak_pciefd_main.c +1 −1
  880. drivers/net/can/sja1000/sja1000_platform.c +1 −1
  881. drivers/net/can/slcan.c +2 −2
  882. drivers/net/can/spi/mcp251x.c +1 −1
  883. drivers/net/can/usb/peak_usb/pcan_usb.c +1 −1
  884. drivers/net/can/usb/peak_usb/pcan_usb_core.c +1 −1
  885. drivers/net/can/usb/peak_usb/pcan_usb_pro.c +2 −2
  886. drivers/net/dsa/b53/b53_common.c +3 −1
  887. drivers/net/dsa/b53/b53_serdes.c +1 −1
  888. drivers/net/dsa/bcm_sf2.c +1 −1
  889. drivers/net/dsa/microchip/ksz9477.c +1 −1
  890. drivers/net/dsa/mt7530.c +6 −3
  891. drivers/net/dsa/mv88e6xxx/chip.c +1 −1
  892. drivers/net/dsa/ocelot/Kconfig +1 −1
  893. drivers/net/dsa/ocelot/felix.c +1 −0
  894. drivers/net/dsa/sja1105/sja1105_main.c +1 −1
  895. drivers/net/ethernet/3com/3c509.c +2 −2
  896. drivers/net/ethernet/3com/3c574_cs.c +4 −4
  897. drivers/net/ethernet/8390/axnet_cs.c +2 −1
  898. drivers/net/ethernet/8390/pcnet_cs.c +1 −1
  899. drivers/net/ethernet/alacritech/slicoss.c +6 −6
  900. drivers/net/ethernet/alteon/acenic.c +1 −1
  901. drivers/net/ethernet/amazon/ena/ena_netdev.c +18 −17
  902. drivers/net/ethernet/amd/amd8111e.c +1 −1
  903. drivers/net/ethernet/amd/xgbe/xgbe-drv.c +3 −3
  904. drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c +13 −0
  905. drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c +2 −2
  906. drivers/net/ethernet/arc/emac_mdio.c +1 −0
  907. drivers/net/ethernet/broadcom/bcmsysport.c +4 −2
  908. drivers/net/ethernet/broadcom/bgmac-bcma.c +1 −1
  909. drivers/net/ethernet/broadcom/bgmac-platform.c +1 −1
  910. drivers/net/ethernet/broadcom/bnx2.c +7 −7
  911. drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c +7 −7
  912. drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +2 −2
  913. drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c +2 −2
  914. drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c +2 −2
  915. drivers/net/ethernet/broadcom/bnxt/bnxt.c +67 −39
  916. drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +8 −12
  917. drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c +2 −2
  918. drivers/net/ethernet/broadcom/cnic.c +2 −2
  919. drivers/net/ethernet/broadcom/genet/bcmgenet.c +3 −3
  920. drivers/net/ethernet/broadcom/genet/bcmmii.c +1 −1
  921. drivers/net/ethernet/broadcom/tg3.c +40 −31
  922. drivers/net/ethernet/brocade/bna/bfa_ioc.c +3 −3
  923. drivers/net/ethernet/brocade/bna/bna_enet.c +1 −1
  924. drivers/net/ethernet/brocade/bna/bna_tx_rx.c +1 −1
  925. drivers/net/ethernet/cadence/macb_ptp.c +1 −1
  926. drivers/net/ethernet/cavium/liquidio/lio_main.c +14 −15
  927. drivers/net/ethernet/cavium/liquidio/lio_vf_main.c +12 −13
  928. drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c +1 −1
  929. drivers/net/ethernet/cavium/thunder/nicvf_main.c +2 −2
  930. drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c +1 −1
  931. drivers/net/ethernet/chelsio/cxgb3/l2t.c +1 −1
  932. drivers/net/ethernet/chelsio/cxgb4/cxgb4_thermal.c +6 −2
  933. drivers/net/ethernet/chelsio/cxgb4/l2t.c +1 −1
  934. drivers/net/ethernet/chelsio/cxgb4/sge.c +7 −3
  935. drivers/net/ethernet/chelsio/cxgb4/t4_hw.c +3 −3
  936. drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c +1 −1
  937. drivers/net/ethernet/cisco/enic/enic_main.c +1 −1
  938. drivers/net/ethernet/cortina/gemini.c +18 −20
  939. drivers/net/ethernet/davicom/dm9000.c +1 −1
  940. drivers/net/ethernet/dec/tulip/de4x5.c +3 −3
  941. drivers/net/ethernet/dec/tulip/tulip_core.c +1 −1
  942. drivers/net/ethernet/dec/tulip/winbond-840.c +1 −1
  943. drivers/net/ethernet/emulex/benet/be_ethtool.c +1 −1
  944. drivers/net/ethernet/freescale/dpaa/dpaa_eth.c +1 −1
  945. drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c +1 −1
  946. drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +2 −2
  947. drivers/net/ethernet/freescale/fec_main.c +2 −2
  948. drivers/net/ethernet/freescale/fman/fman_memac.c +1 −1
  949. drivers/net/ethernet/freescale/fman/fman_port.c +2 −2
  950. drivers/net/ethernet/freescale/gianfar.c +3 −1
  951. drivers/net/ethernet/freescale/ucc_geth.c +1 −1
  952. drivers/net/ethernet/hisilicon/hns/hns_enet.c +6 −3
  953. drivers/net/ethernet/hisilicon/hns/hns_ethtool.c +1 −1
  954. drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +5 −3
  955. drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +1 −3
  956. drivers/net/ethernet/ibm/ehea/ehea_main.c +1 −1
  957. drivers/net/ethernet/ibm/emac/core.c +1 −1
  958. drivers/net/ethernet/ibm/ibmvnic.c +14 −1
  959. drivers/net/ethernet/intel/e1000e/netdev.c +0 −1
  960. drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h +1 −1
  961. drivers/net/ethernet/intel/i40e/i40e_common.c +27 −8
  962. drivers/net/ethernet/intel/i40e/i40e_main.c +3 −0
  963. drivers/net/ethernet/intel/igb/igb_main.c +0 −1
  964. drivers/net/ethernet/intel/igc/igc_main.c +2 −3
  965. drivers/net/ethernet/intel/igc/igc_ptp.c +0 −2
  966. drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c +1 −1
  967. drivers/net/ethernet/marvell/mvneta.c +2 −2
  968. drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c +1 −1
  969. drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +2 −2
  970. drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c +1 −1
  971. drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +2 −2
  972. drivers/net/ethernet/marvell/skge.c +1 −1
  973. drivers/net/ethernet/marvell/sky2.c +2 −2
  974. drivers/net/ethernet/mediatek/mtk_eth_soc.c +3 −3
  975. drivers/net/ethernet/mellanox/mlx4/mr.c +1 −1
  976. drivers/net/ethernet/mellanox/mlxfw/mlxfw_fsm.c +2 −2
  977. drivers/net/ethernet/mellanox/mlxsw/core.c +9 −9
  978. drivers/net/ethernet/mellanox/mlxsw/core_env.c +3 −3
  979. drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c +2 −2
  980. drivers/net/ethernet/mellanox/mlxsw/spectrum.c +2 −2
  981. drivers/net/ethernet/mellanox/mlxsw/spectrum.h +5 −5
  982. drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c +16 −16
  983. drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c +3 −3
  984. drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +6 −6
  985. drivers/net/ethernet/microchip/lan743x_ethtool.c +1 −1
  986. drivers/net/ethernet/mscc/ocelot.c +1 −1
  987. drivers/net/ethernet/natsemi/natsemi.c +1 −1
  988. drivers/net/ethernet/neterion/vxge/vxge-config.c +3 −3
  989. drivers/net/ethernet/netronome/nfp/crypto/tls.c +1 −1
  990. drivers/net/ethernet/netronome/nfp/flower/action.c +1 −1
  991. drivers/net/ethernet/netronome/nfp/flower/cmsg.c +1 −1
  992. drivers/net/ethernet/netronome/nfp/flower/offload.c +1 −1
  993. drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c +2 −0
  994. drivers/net/ethernet/netronome/nfp/nfp_asm.c +1 −1
  995. drivers/net/ethernet/netronome/nfp/nfp_net_common.c +2 −2
  996. drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c +2 −2
  997. drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c +1 −1
  998. drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c +1 −1
  999. drivers/net/ethernet/packetengines/yellowfin.c +1 −1
  1000. drivers/net/ethernet/pensando/ionic/ionic_txrx.c +3 −10
  1001. drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c +2 −2
  1002. drivers/net/ethernet/qlogic/qed/qed_cxt.c +1 −1
  1003. drivers/net/ethernet/qlogic/qed/qed_dev.c +2 −2
  1004. drivers/net/ethernet/qlogic/qed/qed_main.c +2 −2
  1005. drivers/net/ethernet/qlogic/qed/qed_mcp.c +5 −5
  1006. drivers/net/ethernet/qlogic/qla3xxx.c +1 −1
  1007. drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c +2 −2
  1008. drivers/net/ethernet/realtek/r8169_main.c +2 −2
  1009. drivers/net/ethernet/renesas/ravb_main.c +55 −55
  1010. drivers/net/ethernet/rocker/rocker_main.c +4 −4
  1011. drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c +2 −2
  1012. drivers/net/ethernet/sfc/ef100.c +4 −4
  1013. drivers/net/ethernet/sfc/ef100_nic.c +6 −4
  1014. drivers/net/ethernet/sfc/ef100_rx.c +9 −4
  1015. drivers/net/ethernet/sfc/ef100_rx.h +1 −0
  1016. drivers/net/ethernet/sfc/efx.h +8 −0
  1017. drivers/net/ethernet/sfc/falcon/ethtool.c +1 −1
  1018. drivers/net/ethernet/sfc/falcon/farch.c +7 −7
  1019. drivers/net/ethernet/sfc/farch.c +7 −7
  1020. drivers/net/ethernet/sfc/mcdi_filters.c +1 −1
  1021. drivers/net/ethernet/sfc/mcdi_port_common.c +1 −1
  1022. drivers/net/ethernet/sfc/net_driver.h +4 −0
  1023. drivers/net/ethernet/sfc/nic.c +4 −0
  1024. drivers/net/ethernet/sfc/rx.c +1 −1
  1025. drivers/net/ethernet/sfc/rx_common.c +3 −1
  1026. drivers/net/ethernet/sis/sis900.c +1 −1
  1027. drivers/net/ethernet/smsc/smc911x.c +1 −1
  1028. drivers/net/ethernet/socionext/netsec.c +2 −2
  1029. drivers/net/ethernet/stmicro/stmmac/dwmac-anarion.c +4 −3
  1030. drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c +2 −2
  1031. drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +1 −1
  1032. drivers/net/ethernet/sun/cassini.c +1 −1
  1033. drivers/net/ethernet/sun/niu.c +2 −2
  1034. drivers/net/ethernet/sun/sungem.c +1 −1
  1035. drivers/net/ethernet/ti/am65-cpsw-nuss.c +2 −0
  1036. drivers/net/ethernet/ti/cpsw-phy-sel.c +2 −2
  1037. drivers/net/ethernet/ti/cpsw.c +1 −1
  1038. drivers/net/ethernet/ti/cpsw_new.c +22 −7
  1039. drivers/net/ethernet/ti/cpsw_priv.c +2 −2
  1040. drivers/net/ethernet/ti/tlan.c +1 −1
  1041. drivers/net/ethernet/toshiba/ps3_gelic_wireless.c +1 −1
  1042. drivers/net/ethernet/toshiba/spider_net.c +14 −14
  1043. drivers/net/ethernet/xircom/xirc2ps_cs.c +1 −1
  1044. drivers/net/fddi/skfp/cfm.c +2 −15
  1045. drivers/net/fddi/skfp/fplustm.c +0 −4
  1046. drivers/net/fddi/skfp/hwmtm.c +0 −4
  1047. drivers/net/fddi/skfp/pcmplc.c +2 −2
  1048. drivers/net/fddi/skfp/smt.c +2 −5
  1049. drivers/net/fjes/fjes_main.c +1 −1
  1050. drivers/net/gtp.c +1 −0
  1051. drivers/net/hamradio/baycom_epp.c +1 −1
  1052. drivers/net/hamradio/mkiss.c +2 −3
  1053. drivers/net/hyperv/netvsc_drv.c +2 −2
  1054. drivers/net/ipvlan/ipvlan_main.c +22 −5
  1055. drivers/net/macvlan.c +18 −5
  1056. drivers/net/mii.c +1 −1
  1057. drivers/net/netdevsim/bus.c +1 −1
  1058. drivers/net/netdevsim/fib.c +3 −3
  1059. drivers/net/phy/adin.c +2 −2
  1060. drivers/net/phy/dp83640.c +4 −4
  1061. drivers/net/phy/dp83867.c +2 −2
  1062. drivers/net/phy/dp83869.c +6 −6
  1063. drivers/net/phy/fixed_phy.c +2 −2
  1064. drivers/net/phy/mscc/mscc_main.c +2 −2
  1065. drivers/net/phy/phy.c +2 −2
  1066. drivers/net/phy/phy_device.c +1 −1
  1067. drivers/net/phy/phylink.c +2 −2
  1068. drivers/net/phy/sfp-bus.c +2 −2
  1069. drivers/net/phy/sfp.c +6 −6
  1070. drivers/net/plip/plip.c +13 −13
  1071. drivers/net/tun.c +3 −3
  1072. drivers/net/usb/Kconfig +1 −0
  1073. drivers/net/usb/aqc111.c +3 −3
  1074. drivers/net/usb/asix_common.c +1 −1
  1075. drivers/net/usb/catc.c +1 −1
  1076. drivers/net/usb/cdc-phonet.c +1 −1
  1077. drivers/net/usb/dm9601.c +4 −0
  1078. drivers/net/usb/lan78xx.c +2 −2
  1079. drivers/net/usb/pegasus.c +2 −2
  1080. drivers/net/usb/r8152.c +3 −3
  1081. drivers/net/usb/rtl8150.c +1 −1
  1082. drivers/net/usb/usbnet.c +3 −3
  1083. drivers/net/veth.c +4 −4
  1084. drivers/net/virtio_net.c +3 −3
  1085. drivers/net/vmxnet3/vmxnet3_ethtool.c +1 −1
  1086. drivers/net/wan/dlci.c +1 −2
  1087. drivers/net/wan/hdlc.c +2 −1
  1088. drivers/net/wan/hdlc_cisco.c +1 −0
  1089. drivers/net/wan/hdlc_x25.c +16 −1
  1090. drivers/net/wan/lapbether.c +4 −1
  1091. drivers/net/wan/sdla.c +1 −1
  1092. drivers/net/wan/x25_asy.c +1 −1
  1093. drivers/net/wimax/i2400m/control.c +1 −1
  1094. drivers/net/wimax/i2400m/usb-fw.c +1 −1
  1095. drivers/net/wimax/i2400m/usb-tx.c +1 −1
  1096. drivers/net/wimax/i2400m/usb.c +1 −1
  1097. drivers/net/xen-netback/hash.c +1 −1
  1098. drivers/net/xen-netback/xenbus.c +1 −1
  1099. drivers/net/xen-netfront.c +1 −1
  1100. drivers/nfc/pn533/pn533.c +2 −2
  1101. drivers/nfc/st21nfca/dep.c +1 −1
  1102. drivers/nfc/st95hf/core.c +1 −1
  1103. drivers/nfc/trf7970a.c +2 −2
  1104. drivers/ntb/ntb_transport.c +2 −2
  1105. drivers/nvdimm/dimm_devs.c +1 −0
  1106. drivers/nvme/host/core.c +104 −48
  1107. drivers/nvme/host/fabrics.c +0 −1
  1108. drivers/nvme/host/fc.c +3 −3
  1109. drivers/nvme/host/multipath.c +26 −43
  1110. drivers/nvme/host/nvme.h +28 −5
  1111. drivers/nvme/host/pci.c +12 −11
  1112. drivers/nvme/host/rdma.c +53 −19
  1113. drivers/nvme/host/tcp.c +59 −26
  1114. drivers/nvme/target/configfs.c +1 −0
  1115. drivers/nvme/target/core.c +7 −1
  1116. drivers/nvme/target/fc.c +2 −2
  1117. drivers/nvme/target/fcloop.c +1 −1
  1118. drivers/nvme/target/io-cmd-bdev.c +0 −1
  1119. drivers/nvme/target/loop.c +1 −1
  1120. drivers/nvme/target/passthru.c +17 −8
  1121. drivers/nvme/target/rdma.c +2 −2
  1122. drivers/nvme/target/tcp.c +9 −1
  1123. drivers/of/address.c +20 −1
  1124. drivers/opp/core.c +28 −13
  1125. drivers/opp/opp.h +1 −1
  1126. drivers/parport/ieee1284.c +3 −3
  1127. drivers/parport/parport_pc.c +1 −1
  1128. drivers/pci/controller/dwc/pci-imx6.c +3 −3
  1129. drivers/pci/controller/pci-rcar-gen2.c +1 −1
  1130. drivers/pci/hotplug/ibmphp_res.c +1 −1
  1131. drivers/pci/hotplug/pciehp_ctrl.c +2 −2
  1132. drivers/pci/hotplug/s390_pci_hpc.c +5 −7
  1133. drivers/pci/hotplug/shpchp_ctrl.c +2 −2
  1134. drivers/pci/p2pdma.c +6 −4
  1135. drivers/pci/pci.c +2 −2
  1136. drivers/pci/proc.c +1 −1
  1137. drivers/pci/quirks.c +2 −2
  1138. drivers/pci/setup-bus.c +1 −1
  1139. drivers/pci/xen-pcifront.c +1 −1
  1140. drivers/pcmcia/db1xxx_ss.c +4 −4
  1141. drivers/perf/arm-ccn.c +1 −1
  1142. drivers/perf/arm_spe_pmu.c +2 −2
  1143. drivers/phy/qualcomm/phy-qcom-usb-hs.c +1 −1
  1144. drivers/phy/rockchip/phy-rockchip-inno-usb2.c +4 −4
  1145. drivers/platform/olpc/olpc-xo175-ec.c +1 −1
  1146. drivers/platform/x86/acer-wmi.c +4 −4
  1147. drivers/platform/x86/dell-laptop.c +2 −2
  1148. drivers/platform/x86/surfacepro3_button.c +4 −4
  1149. drivers/platform/x86/thinkpad_acpi.c +3 −3
  1150. drivers/platform/x86/toshiba_acpi.c +1 −1
  1151. drivers/power/supply/ab8500_charger.c +2 −2
  1152. drivers/power/supply/ab8500_fg.c +2 −2
  1153. drivers/power/supply/abx500_chargalg.c +13 −13
  1154. drivers/power/supply/axp20x_usb_power.c +1 −1
  1155. drivers/power/supply/cros_usbpd-charger.c +1 −1
  1156. drivers/power/supply/max8925_power.c +1 −1
  1157. drivers/power/supply/wm831x_power.c +1 −1
  1158. drivers/power/supply/wm8350_power.c +1 −1
  1159. drivers/ps3/ps3av.c +1 −1
  1160. drivers/ps3/ps3av_cmd.c +2 −2
  1161. drivers/ptp/ptp_clockmatrix.c +43 −13
  1162. drivers/ptp/ptp_clockmatrix.h +2 −0
  1163. drivers/rapidio/devices/rio_mport_cdev.c +1 −1
  1164. drivers/regulator/axp20x-regulator.c +4 −4
  1165. drivers/regulator/core.c +1 −1
  1166. drivers/regulator/slg51000-regulator.c +1 −1
  1167. drivers/regulator/twl6030-regulator.c +1 −1
  1168. drivers/remoteproc/omap_remoteproc.c +0 −1
  1169. drivers/reset/reset-imx7.c +7 −7
  1170. drivers/rpmsg/qcom_glink_native.c +2 −2
  1171. drivers/rtc/rtc-m41t80.c +1 −1
  1172. drivers/rtc/rtc-pcf85063.c +1 −1
  1173. drivers/rtc/rtc-pcf8523.c +1 −1
  1174. drivers/rtc/rtc-stmp3xxx.c +1 −1
  1175. drivers/s390/cio/css.c +5 −0
  1176. drivers/s390/net/ctcm_fsms.c +1 −1
  1177. drivers/s390/net/ctcm_mpc.c +3 −3
  1178. drivers/s390/net/qeth_core_main.c +2 −2
  1179. drivers/s390/net/qeth_ethtool.c +3 −3
  1180. drivers/s390/net/qeth_l2_main.c +1 −1
  1181. drivers/s390/net/qeth_l3_main.c +1 −1
  1182. drivers/s390/scsi/zfcp_fsf.c +2 −2
  1183. drivers/scsi/53c700.c +1 −1
  1184. drivers/scsi/BusLogic.c +1 −1
  1185. drivers/scsi/FlashPoint.c +6 −3
  1186. drivers/scsi/NCR5380.c +1 −1
  1187. drivers/scsi/aacraid/aachba.c +4 −4
  1188. drivers/scsi/aacraid/commsup.c +1 −1
  1189. drivers/scsi/aacraid/linit.c +1 −1
  1190. drivers/scsi/aic7xxx/aic79xx_core.c +20 −20
  1191. drivers/scsi/aic7xxx/aic79xx_osm.c +1 −1
  1192. drivers/scsi/aic7xxx/aic7xxx_core.c +14 −14
  1193. drivers/scsi/aic94xx/aic94xx_scb.c +5 −5
  1194. drivers/scsi/aic94xx/aic94xx_tmf.c +1 −1
  1195. drivers/scsi/arcmsr/arcmsr_hba.c +1 −1
  1196. drivers/scsi/arm/fas216.c +6 −6
  1197. drivers/scsi/be2iscsi/be_iscsi.c +1 −1
  1198. drivers/scsi/be2iscsi/be_main.c +1 −1
  1199. drivers/scsi/bfa/bfa_fcpim.c +3 −3
  1200. drivers/scsi/bfa/bfa_fcs_lport.c +2 −2
  1201. drivers/scsi/bfa/bfa_fcs_rport.c +7 −7
  1202. drivers/scsi/bfa/bfa_ioc.c +3 −3
  1203. drivers/scsi/bfa/bfa_svc.c +1 −1
  1204. drivers/scsi/bnx2fc/bnx2fc_hwi.c +0 −1
  1205. drivers/scsi/csiostor/csio_hw.c +1 −1
  1206. drivers/scsi/csiostor/csio_lnode.c +0 −1
  1207. drivers/scsi/csiostor/csio_wr.c +1 −1
  1208. drivers/scsi/cxgbi/cxgb3i/cxgb3i.c +1 −1
  1209. drivers/scsi/cxgbi/cxgb4i/cxgb4i.c +1 −1
  1210. drivers/scsi/cxgbi/libcxgbi.c +1 −1
  1211. drivers/scsi/cxlflash/main.c +14 −14
  1212. drivers/scsi/cxlflash/superpipe.c +4 −6
  1213. drivers/scsi/device_handler/scsi_dh_hp_sw.c +2 −2
  1214. drivers/scsi/esas2r/esas2r_flash.c +1 −1
  1215. drivers/scsi/esas2r/esas2r_init.c +2 −2
  1216. drivers/scsi/esp_scsi.c +2 −2
  1217. drivers/scsi/fcoe/fcoe_ctlr.c +4 −4
  1218. drivers/scsi/g_NCR5380.c +1 −1
  1219. drivers/scsi/hisi_sas/hisi_sas_main.c +1 −1
  1220. drivers/scsi/hpsa.c +5 −5
  1221. drivers/scsi/ibmvscsi/ibmvfc.c +3 −3
  1222. drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c +3 −3
  1223. drivers/scsi/imm.c +7 −7
  1224. drivers/scsi/isci/phy.c +1 −1
  1225. drivers/scsi/isci/remote_device.c +2 −2
  1226. drivers/scsi/isci/remote_node_context.c +3 −3
  1227. drivers/scsi/isci/request.c +1 −1
  1228. drivers/scsi/libfc/fc_exch.c +2 −2
  1229. drivers/scsi/libfc/fc_fcp.c +4 −4
  1230. drivers/scsi/libfc/fc_lport.c +1 −1
  1231. drivers/scsi/libfc/fc_rport.c +1 −1
  1232. drivers/scsi/libiscsi.c +3 −3
  1233. drivers/scsi/libiscsi_tcp.c +1 −1
  1234. drivers/scsi/libsas/sas_ata.c +1 −1
  1235. drivers/scsi/libsas/sas_discover.c +1 −1
  1236. drivers/scsi/libsas/sas_expander.c +1 −1
  1237. drivers/scsi/libsas/sas_scsi_host.c +1 −1
  1238. drivers/scsi/lpfc/lpfc_ct.c +2 −2
  1239. drivers/scsi/lpfc/lpfc_els.c +1 −1
  1240. drivers/scsi/lpfc/lpfc_hbadisc.c +3 −4
  1241. drivers/scsi/lpfc/lpfc_nportdisc.c +1 −1
  1242. drivers/scsi/lpfc/lpfc_nvme.c +1 −1
  1243. drivers/scsi/lpfc/lpfc_scsi.c +4 −4
  1244. drivers/scsi/lpfc/lpfc_sli.c +14 −14
  1245. drivers/scsi/megaraid.c +6 −6
  1246. drivers/scsi/megaraid/megaraid_mbox.c +1 −1
  1247. drivers/scsi/megaraid/megaraid_sas_base.c +1 −1
  1248. drivers/scsi/megaraid/megaraid_sas_fusion.c +1 −1
  1249. drivers/scsi/mesh.c +1 −1
  1250. drivers/scsi/mpt3sas/mpt3sas_base.c +1 −1
  1251. drivers/scsi/mpt3sas/mpt3sas_ctl.c +1 −1
  1252. drivers/scsi/mpt3sas/mpt3sas_scsih.c +4 −4
  1253. drivers/scsi/myrb.c +4 −4
  1254. drivers/scsi/ncr53c8xx.c +7 −7
  1255. drivers/scsi/pcmcia/nsp_cs.c +1 −1
  1256. drivers/scsi/ppa.c +5 −5
  1257. drivers/scsi/qedf/qedf_main.c +1 −1
  1258. drivers/scsi/qla2xxx/qla_dbg.h +3 −0
  1259. drivers/scsi/qla2xxx/qla_def.h +1 −0
  1260. drivers/scsi/qla2xxx/qla_gs.c +40 −10
  1261. drivers/scsi/qla2xxx/qla_init.c +1 −1
  1262. drivers/scsi/qla2xxx/qla_iocb.c +1 −1
  1263. drivers/scsi/qla2xxx/qla_isr.c +7 −7
  1264. drivers/scsi/qla2xxx/qla_mbx.c +7 −15
  1265. drivers/scsi/qla2xxx/qla_nvme.c +14 −1
  1266. drivers/scsi/qla2xxx/qla_os.c +5 −4
  1267. drivers/scsi/qla2xxx/qla_sup.c +3 −3
  1268. drivers/scsi/qla2xxx/qla_target.c +4 −4
  1269. drivers/scsi/qla4xxx/ql4_os.c +1 −1
  1270. drivers/scsi/qlogicpti.c +10 −10
  1271. drivers/scsi/scsi_debug.c +2 −2
  1272. drivers/scsi/scsi_error.c +14 −14
  1273. drivers/scsi/scsi_ioctl.c +2 −2
  1274. drivers/scsi/scsi_lib.c +1 −1
  1275. drivers/scsi/smartpqi/smartpqi_init.c +8 −9
  1276. drivers/scsi/sr.c +2 −2
  1277. drivers/scsi/st.c +4 −4
  1278. drivers/scsi/sun3_scsi.c +2 −2
  1279. drivers/scsi/sym53c8xx_2/sym_fw.c +1 −1
  1280. drivers/scsi/sym53c8xx_2/sym_hipd.c +2 −2
  1281. drivers/scsi/sym53c8xx_2/sym_nvram.c +1 −1
  1282. drivers/scsi/ufs/ti-j721e-ufs.c +1 −0
  1283. drivers/scsi/ufs/ufs-mediatek.c +1 −1
  1284. drivers/scsi/ufs/ufs_bsg.c +1 −1
  1285. drivers/scsi/ufs/ufshcd-pci.c +14 −2
  1286. drivers/scsi/ufs/ufshcd.c +22 −17
  1287. drivers/scsi/ufs/ufshcd.h +8 −1
  1288. drivers/scsi/virtio_scsi.c +1 −1
  1289. drivers/scsi/vmw_pvscsi.c +1 −1
  1290. drivers/scsi/wd33c93.c +1 −1
  1291. drivers/scsi/xen-scsifront.c +1 −1
  1292. drivers/soc/qcom/socinfo.c +11 −11
  1293. drivers/soc/tegra/pmc.c +1 −1
  1294. drivers/spi/Kconfig +3 −0
  1295. drivers/spi/spi-bcm2835aux.c +2 −2
  1296. drivers/spi/spi-fsl-cpm.c +2 −2
  1297. drivers/spi/spi-sprd-adi.c +1 −1
  1298. drivers/spi/spi-stm32.c +62 −38
  1299. drivers/spi/spi.c +20 −1
  1300. drivers/ssb/driver_chipcommon.c +1 −1
  1301. drivers/ssb/driver_mipscore.c +1 −1
  1302. drivers/ssb/scan.c +1 −1
  1303. drivers/staging/media/atomisp/pci/atomisp_cmd.c +1 −1
  1304. drivers/staging/media/atomisp/pci/atomisp_compat_css20.c +4 −4
  1305. drivers/staging/media/atomisp/pci/atomisp_ioctl.c +0 −1
  1306. drivers/staging/media/atomisp/pci/atomisp_v4l2.c +1 −1
  1307. drivers/staging/media/atomisp/pci/hmm/hmm_bo.c +1 −1
  1308. drivers/staging/media/atomisp/pci/sh_css.c +1 −1
  1309. drivers/staging/media/hantro/hantro_g1_mpeg2_dec.c +1 −1
  1310. drivers/staging/media/hantro/rk3399_vpu_hw_mpeg2_dec.c +1 −1
  1311. drivers/staging/media/imx/imx-media-csi.c +1 −1
  1312. drivers/staging/media/sunxi/cedrus/cedrus.c +6 −1
  1313. drivers/staging/media/usbvision/usbvision-i2c.c +3 −3
  1314. drivers/target/iscsi/cxgbit/cxgbit_main.c +1 −1
  1315. drivers/target/iscsi/iscsi_target.c +1 −1
  1316. drivers/target/target_core_pr.c +2 −2
  1317. drivers/target/target_core_sbc.c +1 −1
  1318. drivers/target/target_core_transport.c +2 −2
  1319. drivers/target/tcm_fc/tfc_cmd.c +1 −1
  1320. drivers/thermal/qcom/qcom-spmi-temp-alarm.c +2 −2
  1321. drivers/thermal/qcom/tsens-v0_1.c +4 −4
  1322. drivers/thermal/qcom/tsens-v1.c +2 −2
  1323. drivers/thermal/thermal_core.c +3 −2
  1324. drivers/thermal/ti-soc-thermal/omap4-thermal-data.c +12 −11
  1325. drivers/thermal/ti-soc-thermal/omap4xxx-bandgap.h +7 −3
  1326. drivers/thunderbolt/ctl.c +1 −1
  1327. drivers/thunderbolt/switch.c +1 −1
  1328. drivers/thunderbolt/tunnel.c +2 −2
  1329. drivers/tty/hvc/hvc_xen.c +1 −1
  1330. drivers/tty/mips_ejtag_fdc.c +1 −1
  1331. drivers/tty/n_gsm.c +2 −2
  1332. drivers/tty/n_hdlc.c +1 −1
  1333. drivers/tty/n_r3964.c +0 −1
  1334. drivers/tty/serial/8250/8250_em.c +1 −1
  1335. drivers/tty/serial/8250/8250_exar.c +21 −3
  1336. drivers/tty/serial/8250/8250_fintek.c +1 −1
  1337. drivers/tty/serial/8250/8250_pci.c +1 −1
  1338. drivers/tty/serial/8250/8250_port.c +7 −4
  1339. drivers/tty/serial/8250/8250_uniphier.c +3 −3
  1340. drivers/tty/serial/Kconfig +1 −0
  1341. drivers/tty/serial/Makefile +1 −0
  1342. drivers/tty/serial/amba-pl011.c +9 −7
  1343. drivers/tty/serial/atmel_serial.c +1 −1
  1344. drivers/tty/serial/omap-serial.c +0 −2
  1345. drivers/tty/serial/qcom_geni_serial.c +8 −3
  1346. drivers/tty/serial/rda-uart.c +1 −1
  1347. drivers/tty/serial/samsung_tty.c +5 −3
  1348. drivers/tty/serial/serial-tegra.c +1 −1
  1349. drivers/tty/serial/serial_core.c +1 −1
  1350. drivers/tty/serial/stm32-usart.c +1 −1
  1351. drivers/tty/serial/sunsu.c +1 −1
  1352. drivers/tty/serial/sunzilog.c +1 −1
  1353. drivers/tty/serial/xilinx_uartps.c +1 −1
  1354. drivers/tty/tty_ioctl.c +1 −1
  1355. drivers/tty/vt/vt.c +6 −5
  1356. drivers/tty/vt/vt_ioctl.c +11 −1
  1357. drivers/usb/c67x00/c67x00-sched.c +2 −1
  1358. drivers/usb/class/cdc-acm.c +10 −12
  1359. drivers/usb/core/driver.c +38 −2
  1360. drivers/usb/core/generic.c +3 −2
  1361. drivers/usb/core/hcd-pci.c +4 −1
  1362. drivers/usb/core/hub.c +1 −1
  1363. drivers/usb/core/quirks.c +7 −0
  1364. drivers/usb/dwc3/core.c +2 −3
  1365. drivers/usb/dwc3/gadget.c +89 −18
  1366. drivers/usb/gadget/function/f_mass_storage.c +0 −1
  1367. drivers/usb/gadget/function/f_ncm.c +69 −12
  1368. drivers/usb/gadget/function/f_tcm.c +4 −3
  1369. drivers/usb/gadget/u_f.h +27 −11
  1370. drivers/usb/gadget/udc/atmel_usba_udc.c +1 −1
  1371. drivers/usb/gadget/udc/fsl_udc_core.c +1 −1
  1372. drivers/usb/gadget/udc/pxa25x_udc.c +2 −2
  1373. drivers/usb/host/isp116x-hcd.c +3 −3
  1374. drivers/usb/host/ohci-exynos.c +2 −3
  1375. drivers/usb/host/pci-quirks.c +2 −1
  1376. drivers/usb/host/xhci-dbgcap.c +1 −1
  1377. drivers/usb/host/xhci-debugfs.c +4 −4
  1378. drivers/usb/host/xhci-hub.c +11 −10
  1379. drivers/usb/host/xhci-mem.c +2 −2
  1380. drivers/usb/host/xhci-pci-renesas.c +1 −18
  1381. drivers/usb/host/xhci-ring.c +1 −1
  1382. drivers/usb/host/xhci-tegra.c +3 −1
  1383. drivers/usb/host/xhci.c +3 −2
  1384. drivers/usb/misc/lvstest.c +1 −1
  1385. drivers/usb/misc/yurex.c +1 −1
  1386. drivers/usb/musb/cppi_dma.c +1 −1
  1387. drivers/usb/musb/musb_core.c +6 −7
  1388. drivers/usb/musb/musb_dsps.c +3 −3
  1389. drivers/usb/musb/musb_gadget_ep0.c +2 −2
  1390. drivers/usb/musb/musb_host.c +3 −3
  1391. drivers/usb/musb/musb_virthub.c +1 −1
  1392. drivers/usb/musb/omap2430.c +1 −1
  1393. drivers/usb/musb/tusb6010.c +1 −1
  1394. drivers/usb/phy/phy-jz4770.c +1 −0
  1395. drivers/usb/storage/sddr55.c +1 −1
  1396. drivers/usb/storage/uas.c +1 −1
  1397. drivers/usb/storage/unusual_devs.h +1 −1
  1398. drivers/usb/storage/unusual_uas.h +14 −0
  1399. drivers/usb/typec/tcpm/tcpci.c +1 −1
  1400. drivers/usb/typec/tcpm/tcpm.c +25 −3
  1401. drivers/usb/typec/ucsi/displayport.c +1 −8
  1402. drivers/usb/typec/ucsi/ucsi.c +53 −50
  1403. drivers/usb/usbip/stub_dev.c +6 −0
  1404. drivers/vdpa/ifcvf/ifcvf_base.h +1 −1
  1405. drivers/vdpa/ifcvf/ifcvf_main.c +7 −2
  1406. drivers/vdpa/mlx5/net/mlx5_vnet.c +25 −25
  1407. drivers/vfio/pci/vfio_pci.c +1 −1
  1408. drivers/vfio/pci/vfio_pci_private.h +2 −0
  1409. drivers/vfio/pci/vfio_pci_rdwr.c +96 −24
  1410. drivers/vfio/vfio_iommu_type1.c +67 −6
  1411. drivers/vhost/iotlb.c +2 −2
  1412. drivers/vhost/vhost.c +1 −1
  1413. drivers/video/backlight/adp8860_bl.c +1 −1
  1414. drivers/video/fbdev/acornfb.c +1 −1
  1415. drivers/video/fbdev/arcfb.c +1 −1
  1416. drivers/video/fbdev/atmel_lcdfb.c +2 −2
  1417. drivers/video/fbdev/aty/radeon_pm.c +3 −3
  1418. drivers/video/fbdev/cirrusfb.c +2 −2
  1419. drivers/video/fbdev/controlfb.c +3 −1
  1420. drivers/video/fbdev/core/fbcon.c +23 −2
  1421. drivers/video/fbdev/core/fbmem.c +1 −1
  1422. drivers/video/fbdev/efifb.c +1 −1
  1423. drivers/video/fbdev/fsl-diu-fb.c +2 −2
  1424. drivers/video/fbdev/gxt4500.c +1 −1
  1425. drivers/video/fbdev/hyperv_fb.c +2 −2
  1426. drivers/video/fbdev/i740fb.c +1 −1
  1427. drivers/video/fbdev/mmp/fb/mmpfb.c +0 −2
  1428. drivers/video/fbdev/nvidia/nv_hw.c +1 −1
  1429. drivers/video/fbdev/offb.c +2 −2
  1430. drivers/video/fbdev/omap/lcdc.c +2 −2
  1431. drivers/video/fbdev/omap/omapfb_main.c +10 −10
  1432. drivers/video/fbdev/omap2/omapfb/dss/dispc.c +2 −2
  1433. drivers/video/fbdev/omap2/omapfb/omapfb-ioctl.c +1 −1
  1434. drivers/video/fbdev/omap2/omapfb/omapfb-main.c +1 −1
  1435. drivers/video/fbdev/pm2fb.c +2 −2
  1436. drivers/video/fbdev/pxa168fb.c +0 −4
  1437. drivers/video/fbdev/pxafb.c +1 −1
  1438. drivers/video/fbdev/riva/fbdev.c +1 −1
  1439. drivers/video/fbdev/s3c-fb.c +3 −3
  1440. drivers/video/fbdev/sa1100fb.c +1 −1
  1441. drivers/video/fbdev/savage/savagefb_driver.c +1 −1
  1442. drivers/video/fbdev/sh_mobile_lcdcfb.c +2 −2
  1443. drivers/video/fbdev/sis/sis_main.c +4 −4
  1444. drivers/video/fbdev/sm501fb.c +1 −1
  1445. drivers/video/fbdev/stifb.c +2 −2
  1446. drivers/video/fbdev/tdfxfb.c +1 −1
  1447. drivers/video/fbdev/via/lcd.c +1 −1
  1448. drivers/video/fbdev/xen-fbfront.c +1 −1
  1449. drivers/watchdog/sc1200wdt.c +1 −1
  1450. drivers/watchdog/wdrtas.c +1 −1
  1451. drivers/xen/Kconfig +10 −0
  1452. drivers/xen/Makefile +1 −0
  1453. drivers/xen/balloon.c +2 −2
  1454. drivers/xen/events/events_base.c +8 −8
  1455. drivers/xen/grant-table.c +2 −2
  1456. drivers/xen/privcmd.c +2 −2
  1457. drivers/xen/pvcalls-front.c +1 −1
  1458. drivers/xen/unpopulated-alloc.c +183 −0
  1459. drivers/xen/xen-acpi-memhotplug.c +1 −1
  1460. drivers/xen/xen-pciback/xenbus.c +1 −1
  1461. drivers/xen/xen-scsiback.c +1 −1
  1462. drivers/xen/xenbus/xenbus_client.c +11 −5
  1463. drivers/xen/xenbus/xenbus_probe_frontend.c +2 −2
  1464. drivers/xen/xlate_mmu.c +2 −2
  1465. fs/9p/vfs_file.c +1 −1
  1466. fs/adfs/dir_f.c +6 −6
  1467. fs/affs/amigaffs.c +27 −0
  1468. fs/affs/file.c +25 −1
  1469. fs/affs/inode.c +1 −1
  1470. fs/affs/super.c +3 −3
  1471. fs/afs/cmservice.c +8 −8
  1472. fs/afs/dynroot.c +11 −9
  1473. fs/afs/file.c +1 −1
  1474. fs/afs/flock.c +0 −1
  1475. fs/afs/fs_operation.c +1 −0
  1476. fs/afs/fs_probe.c +2 −2
  1477. fs/afs/fsclient.c +21 −21
  1478. fs/afs/internal.h +8 −6
  1479. fs/afs/misc.c +9 −9
  1480. fs/afs/proc.c +5 −0
  1481. fs/afs/rotate.c +1 −1
  1482. fs/afs/rxrpc.c +3 −3
  1483. fs/afs/vl_list.c +1 −0
  1484. fs/afs/vl_probe.c +51 −31
  1485. fs/afs/vl_rotate.c +6 −1
  1486. fs/afs/vlclient.c +12 −12
  1487. fs/afs/write.c +1 −1
  1488. fs/afs/yfsclient.c +25 −25
  1489. fs/aio.c +1 −1
  1490. fs/binfmt_flat.c +12 −8
  1491. fs/btrfs/block-group.c +3 −1
  1492. fs/btrfs/ctree.c +6 −2
  1493. fs/btrfs/ctree.h +3 −3
  1494. fs/btrfs/disk-io.c +1 −0
  1495. fs/btrfs/extent-tree.c +12 −7
  1496. fs/btrfs/extent_io.c +4 −4
  1497. fs/btrfs/extent_io.h +3 −3
  1498. fs/btrfs/file.c +1 −1
  1499. fs/btrfs/free-space-cache.c +1 −1
  1500. fs/btrfs/free-space-tree.c +4 −0
  1501. fs/btrfs/inode.c +14 −15
  1502. fs/btrfs/ioctl.c +20 −7
  1503. fs/btrfs/scrub.c +70 −52
  1504. fs/btrfs/super.c +1 −0
  1505. fs/btrfs/tree-checker.c +1 −1
  1506. fs/btrfs/tree-log.c +6 −4
  1507. fs/btrfs/volumes.c +2 −1
  1508. fs/buffer.c +10 −1
  1509. fs/ceph/caps.c +7 −7
  1510. fs/ceph/debugfs.c +2 −2
  1511. fs/ceph/dir.c +14 −19
  1512. fs/ceph/file.c +4 −3
  1513. fs/ceph/inode.c +9 −10
  1514. fs/ceph/mds_client.h +1 −1
  1515. fs/ceph/quota.c +2 −2
  1516. fs/ceph/super.h +38 −35
  1517. fs/cifs/cifsglob.h +15 −0
  1518. fs/cifs/cifssmb.c +1 −1
  1519. fs/cifs/connect.c +6 −6
  1520. fs/cifs/sess.c +3 −3
  1521. fs/cifs/smb2pdu.c +1 −1
  1522. fs/configfs/dir.c +2 −2
  1523. fs/dax.c +1 −1
  1524. fs/dlm/lock.c +1 −1
  1525. fs/erofs/zmap.c +3 −3
  1526. fs/eventpoll.c +15 −15
  1527. fs/ext2/file.c +4 −2
  1528. fs/ext2/inode.c +2 −2
  1529. fs/ext2/super.c +1 −1
  1530. fs/ext4/Kconfig +1 −1
  1531. fs/ext4/balloc.c +12 −4
  1532. fs/ext4/block_validity.c +69 −90
  1533. fs/ext4/ext4.h +63 −28
  1534. fs/ext4/ext4_jbd2.c +25 −0
  1535. fs/ext4/extents.c +18 −24
  1536. fs/ext4/file.c +7 −4
  1537. fs/ext4/hash.c +2 −2
  1538. fs/ext4/indirect.c +9 −11
  1539. fs/ext4/inline.c +2 −2
  1540. fs/ext4/inode.c +16 −16
  1541. fs/ext4/ioctl.c +17 −17
  1542. fs/ext4/mballoc.c +244 −45
  1543. fs/ext4/mballoc.h +4 −0
  1544. fs/ext4/move_extent.c +2 −2
  1545. fs/ext4/namei.c +39 −27
  1546. fs/ext4/readpage.c +2 −2
  1547. fs/ext4/super.c +189 −79
  1548. fs/ext4/sysfs.c +13 −0
  1549. fs/ext4/xattr.c +1 −2
  1550. fs/f2fs/f2fs.h +1 −1
  1551. fs/f2fs/node.c +2 −2
  1552. fs/fcntl.c +2 −2
  1553. fs/fs-writeback.c +53 −50
  1554. fs/fs_context.c +1 −1
  1555. fs/fsopen.c +1 −1
  1556. fs/gfs2/bmap.c +2 −2
  1557. fs/gfs2/log.c +31 −0
  1558. fs/gfs2/quota.c +1 −1
  1559. fs/gfs2/trans.c +1 −0
  1560. fs/hfsplus/wrapper.c +1 −1
  1561. fs/io-wq.c +19 −2
  1562. fs/io_uring.c +200 −140
  1563. fs/iomap/seek.c +2 −2
  1564. fs/jbd2/journal.c +9 −7
  1565. fs/jbd2/recovery.c +12 −34
  1566. fs/jbd2/transaction.c +27 −6
  1567. fs/jffs2/fs.c +1 −1
  1568. fs/jffs2/readinode.c +1 −1
  1569. fs/libfs.c +2 −2
  1570. fs/locks.c +3 −3
  1571. fs/nfs/blocklayout/blocklayout.c +1 −1
  1572. fs/nfs/dir.c +1 −1
  1573. fs/nfs/filelayout/filelayout.c +1 −1
  1574. fs/nfs/flexfilelayout/flexfilelayout.c +2 −2
  1575. fs/nfs/fs_context.c +12 −10
  1576. fs/nfs/nfs3acl.c +2 −2
  1577. fs/nfs/nfs4file.c +1 −1
  1578. fs/nfs/nfs4idmap.c +2 −2
  1579. fs/nfs/nfs4proc.c +16 −16
  1580. fs/nfs/nfs4state.c +7 −7
  1581. fs/nfs/pagelist.c +1 −1
  1582. fs/nfs/pnfs.c +1 −1
  1583. fs/nfs_common/nfsacl.c +1 −1
  1584. fs/nfsd/blocklayout.c +2 −2
  1585. fs/nfsd/nfs4callback.c +1 −1
  1586. fs/nfsd/nfs4layouts.c +1 −1
  1587. fs/nfsd/nfs4proc.c +1 −1
  1588. fs/nfsd/nfs4state.c +8 −6
  1589. fs/nfsd/nfsfh.c +2 −2
  1590. fs/nfsd/nfsproc.c +1 −1
  1591. fs/nfsd/nfssvc.c +1 −1
  1592. fs/nfsd/vfs.c +2 −2
  1593. fs/nilfs2/bmap.c +1 −1
  1594. fs/nilfs2/recovery.c +1 −1
  1595. fs/nilfs2/segment.c +12 −7
  1596. fs/notify/fanotify/fanotify_user.c +1 −1
  1597. fs/ocfs2/cluster/quorum.c +1 −1
  1598. fs/pstore/zone.c +0 −1
  1599. fs/quota/quota.c +1 −1
  1600. fs/romfs/storage.c +1 −3
  1601. fs/seq_file.c +1 −1
  1602. fs/signalfd.c +1 −1
  1603. fs/squashfs/block.c +5 −1
  1604. fs/ubifs/lprops.c +2 −2
  1605. fs/udf/symlink.c +1 −1
  1606. fs/ufs/util.h +6 −6
  1607. fs/vboxsf/utils.c +1 −1
  1608. fs/xfs/libxfs/xfs_attr_leaf.c +5 −3
  1609. fs/xfs/libxfs/xfs_bmap.c +1 −1
  1610. fs/xfs/libxfs/xfs_ialloc.c +2 −2
  1611. fs/xfs/libxfs/xfs_trans_inode.c +2 −2
  1612. fs/xfs/libxfs/xfs_trans_space.h +1 −1
  1613. fs/xfs/xfs_bmap_util.c +1 −1
  1614. fs/xfs/xfs_file.c +10 −2
  1615. include/drm/drm_hdcp.h +3 −0
  1616. include/drm/drm_modeset_lock.h +7 −2
  1617. include/linux/bvec.h +8 −1
  1618. include/linux/ceph/ceph_features.h +4 −4
  1619. include/linux/compat.h +3 −3
  1620. include/linux/compiler_attributes.h +1 −7
  1621. include/linux/compiler_types.h +2 −2
  1622. include/linux/cpufreq.h +2 −2
  1623. include/linux/cpuhotplug.h +1 −0
  1624. include/linux/cpuidle.h +7 −6
  1625. include/linux/dma-direct.h +0 −3
  1626. include/linux/dma-mapping.h +3 −2
  1627. include/linux/entry-common.h +42 −9
  1628. include/linux/filter.h +1 −1
  1629. include/linux/fs.h +5 −2
  1630. include/linux/hid.h +29 −13
  1631. include/linux/irqflags.h +39 −34
  1632. include/linux/jbd2.h +1 −1
  1633. include/linux/jhash.h +13 −13
  1634. include/linux/kernel.h +1 −1
  1635. include/linux/ksm.h +0 −7
  1636. include/linux/libata.h +1 −0
  1637. include/linux/lockdep.h +13 −5
  1638. include/linux/log2.h +1 −1
  1639. include/linux/memremap.h +4 −5
  1640. include/linux/mm.h +8 −3
  1641. include/linux/mmu_context.h +5 −0
  1642. include/linux/netfilter/nf_conntrack_sctp.h +2 −0
  1643. include/linux/netfilter/nfnetlink.h +1 −2
  1644. include/linux/netfilter_ipv6.h +0 −18
  1645. include/linux/pgtable.h +2 −0
  1646. include/linux/phylink.h +2 −1
  1647. include/linux/sched.h +1 −1
  1648. include/linux/sched/user.h +3 −0
  1649. include/linux/signal.h +6 −6
  1650. include/linux/skbuff.h +17 −8
  1651. include/linux/soc/ti/ti_sci_protocol.h +13 −0
  1652. include/linux/vm_event_item.h +1 −0
  1653. include/math-emu/op-common.h +5 −5
  1654. include/net/addrconf.h +2 −1
  1655. include/net/af_rxrpc.h +1 −1
  1656. include/net/ndisc.h +1 −1
  1657. include/net/netfilter/nf_tables.h +2 −0
  1658. include/soc/nps/common.h +6 −0
  1659. include/trace/events/ext4.h +75 −10
  1660. include/trace/events/mmflags.h +2 −0
  1661. include/trace/events/rxrpc.h +22 −5
  1662. include/trace/events/writeback.h +6 −8
  1663. include/uapi/linux/bpf.h +5 −5
  1664. include/uapi/linux/in.h +1 −1
  1665. include/uapi/linux/netfilter/nf_tables.h +1 −1
  1666. include/xen/arm/page.h +5 −1
  1667. include/xen/balloon.h +4 −0
  1668. include/xen/xen.h +9 −0
  1669. init/initramfs.c +1 −1
  1670. ipc/ipc_sysctl.c +1 −1
  1671. ipc/sem.c +2 −2
  1672. ipc/shm.c +2 −2
  1673. kernel/auditfilter.c +1 −1
  1674. kernel/bpf/bpf_iter.c +14 −1
  1675. kernel/bpf/cgroup.c +1 −1
  1676. kernel/bpf/cpumap.c +1 −1
  1677. kernel/bpf/stackmap.c +14 −10
  1678. kernel/bpf/syscall.c +2 −2
  1679. kernel/bpf/task_iter.c +4 −2
  1680. kernel/bpf/verifier.c +2 −2
  1681. kernel/capability.c +1 −1
  1682. kernel/compat.c +3 −3
  1683. kernel/debug/gdbstub.c +3 −3
  1684. kernel/debug/kdb/kdb_keyboard.c +2 −2
  1685. kernel/debug/kdb/kdb_support.c +3 −3
  1686. kernel/dma/direct.c +9 −4
  1687. kernel/dma/pool.c +79 −68
  1688. kernel/entry/common.c +31 −7
  1689. kernel/events/core.c +1 −1
  1690. kernel/events/uprobes.c +1 −1
  1691. kernel/fork.c +1 −1
  1692. kernel/gcov/Kconfig +1 −0
  1693. kernel/irq/handle.c +1 −1
  1694. kernel/irq/manage.c +2 −2
  1695. kernel/irq/matrix.c +7 −0
  1696. kernel/kallsyms.c +2 −2
  1697. kernel/locking/lockdep.c +11 −7
  1698. kernel/power/hibernate.c +1 −1
  1699. kernel/power/qos.c +2 −2
  1700. kernel/relay.c +1 −0
  1701. kernel/sched/core.c +1 −1
  1702. kernel/sched/idle.c +11 −14
  1703. kernel/sched/topology.c +3 −3
  1704. kernel/signal.c +1 −1
  1705. kernel/sys.c +1 −1
  1706. kernel/sysctl.c +1 −2
  1707. kernel/time/hrtimer.c +1 −1
  1708. kernel/time/posix-timers.c +2 −2
  1709. kernel/time/tick-broadcast.c +1 −1
  1710. kernel/time/timer.c +1 −1
  1711. kernel/trace/blktrace.c +1 −1
  1712. kernel/trace/trace_events_filter.c +2 −2
  1713. kernel/watch_queue.c +8 −0
  1714. lib/Makefile +6 −1
  1715. lib/bootconfig.c +1 −1
  1716. lib/glob.c +1 −1
  1717. lib/vsprintf.c +4 −3
  1718. lib/xz/xz_dec_lzma2.c +2 −2
  1719. lib/xz/xz_dec_stream.c +8 −8
  1720. lib/zstd/decompress.c +5 −5
  1721. mm/gup.c +6 −36
  1722. mm/huge_memory.c +4 −3
  1723. mm/hugetlb.c +37 −12
  1724. mm/hugetlb_cgroup.c +2 −2
  1725. mm/khugepaged.c +2 −2
  1726. mm/ksm.c +4 −25
  1727. mm/madvise.c +1 −1
  1728. mm/memcontrol.c +6 −0
  1729. mm/memory.c +45 −55
  1730. mm/memremap.c +1 −1
  1731. mm/migrate.c +18 −11
  1732. mm/page_alloc.c +6 −1
  1733. mm/rmap.c +7 −2
  1734. mm/rodata_test.c +1 −0
  1735. mm/slub.c +6 −6
  1736. mm/vmalloc.c +2 −0
  1737. mm/vmscan.c +8 −0
  1738. mm/vmstat.c +1 −0
  1739. net/8021q/vlan_dev.c +1 −1
  1740. net/9p/trans_xen.c +1 −1
  1741. net/atm/common.c +2 −2
  1742. net/atm/lec.c +1 −1
  1743. net/atm/resources.c +4 −4
  1744. net/batman-adv/bat_v_ogm.c +6 −5
  1745. net/batman-adv/bridge_loop_avoidance.c +4 −1
  1746. net/batman-adv/gateway_client.c +4 −2
  1747. net/bpf/test_run.c +1 −1
  1748. net/bridge/netfilter/ebtables.c +4 −0
  1749. net/bridge/netfilter/nf_conntrack_bridge.c +6 −2
  1750. net/caif/cfrfml.c +2 −2
  1751. net/can/j1939/socket.c +15 −1
  1752. net/can/j1939/transport.c +94 −30
  1753. net/ceph/ceph_hash.c +10 −10
  1754. net/ceph/crush/mapper.c +1 −1
  1755. net/ceph/messenger.c +2 −2
  1756. net/ceph/mon_client.c +1 −1
  1757. net/ceph/osd_client.c +2 −2
  1758. net/core/dev.c +16 −13
  1759. net/core/dev_ioctl.c +3 −3
  1760. net/core/devlink.c +3 −3
  1761. net/core/drop_monitor.c +1 −1
  1762. net/core/filter.c +63 −14
  1763. net/core/netpoll.c +1 −1
  1764. net/core/pktgen.c +2 −2
  1765. net/core/skbuff.c +11 −5
  1766. net/core/skmsg.c +0 −1
  1767. net/core/sock.c +2 −2
  1768. net/dccp/ccids/ccid3.c +1 −1
  1769. net/dccp/feat.c +2 −1
  1770. net/dccp/input.c +5 −5
  1771. net/dccp/options.c +1 −1
  1772. net/dccp/output.c +4 −4
  1773. net/dccp/proto.c +4 −4
  1774. net/decnet/af_decnet.c +3 −3
  1775. net/decnet/dn_nsp_in.c +1 −1
  1776. net/decnet/dn_table.c +1 −1
  1777. net/decnet/sysctl_net_decnet.c +1 −1
  1778. net/dsa/slave.c +1 −1
  1779. net/ethtool/features.c +10 −9
  1780. net/ieee802154/6lowpan/reassembly.c +1 −1
  1781. net/ieee802154/6lowpan/rx.c +2 −2
  1782. net/ipv4/Kconfig +7 −7
  1783. net/ipv4/fib_trie.c +2 −1
  1784. net/ipv4/netfilter/nf_nat_pptp.c +1 −1
  1785. net/ipv4/nexthop.c +4 −1
  1786. net/ipv4/raw.c +1 −1
  1787. net/ipv6/addrconf.c +23 −37
  1788. net/ipv6/ip6_tunnel.c +9 −1
  1789. net/ipv6/netfilter.c +0 −3
  1790. net/ipv6/sysctl_net_ipv6.c +2 −1
  1791. net/iucv/af_iucv.c +5 −5
  1792. net/l3mdev/l3mdev.c +1 −1
  1793. net/mac80211/airtime.c +146 −56
  1794. net/mac80211/sta_info.h +3 −2
  1795. net/mac80211/status.c +23 −20
  1796. net/mpls/af_mpls.c +1 −1
  1797. net/mptcp/protocol.c +12 −8
  1798. net/ncsi/ncsi-manage.c +2 −2
  1799. net/netfilter/ipvs/ip_vs_proto_tcp.c +1 −1
  1800. net/netfilter/ipvs/ip_vs_proto_udp.c +1 −1
  1801. net/netfilter/nf_conntrack_pptp.c +1 −1
  1802. net/netfilter/nf_conntrack_proto_sctp.c +35 −4
  1803. net/netfilter/nf_conntrack_proto_tcp.c +1 −1
  1804. net/netfilter/nf_conntrack_proto_udp.c +10 −16
  1805. net/netfilter/nf_tables_api.c +35 −35
  1806. net/netfilter/nfnetlink.c +8 −3
  1807. net/netfilter/nfnetlink_log.c +1 −2
  1808. net/netfilter/nfnetlink_queue.c +1 −1
  1809. net/netfilter/nft_compat.c +14 −23
  1810. net/netfilter/nft_exthdr.c +2 −2
  1811. net/netfilter/nft_flow_offload.c +1 −1
  1812. net/netfilter/nft_payload.c +3 −1
  1813. net/netfilter/nft_set_rbtree.c +47 −10
  1814. net/netfilter/xt_recent.c +1 −1
  1815. net/netlabel/netlabel_domainhash.c +30 −29
  1816. net/netlink/af_netlink.c +1 −1
  1817. net/netlink/policy.c +4 −1
  1818. net/netrom/nr_in.c +1 −1
  1819. net/netrom/nr_route.c +4 −4
  1820. net/openvswitch/conntrack.c +2 −2
  1821. net/openvswitch/flow.c +1 −1
  1822. net/packet/af_packet.c +7 −2
  1823. net/phonet/pep.c +5 −5
  1824. net/qrtr/qrtr.c +11 −9
  1825. net/rds/send.c +1 −1
  1826. net/rose/rose_in.c +1 −1
  1827. net/rose/rose_route.c +2 −2
  1828. net/rxrpc/af_rxrpc.c +3 −3
  1829. net/rxrpc/ar-internal.h +8 −5
  1830. net/rxrpc/call_accept.c +1 −1
  1831. net/rxrpc/call_object.c +1 −0
  1832. net/rxrpc/conn_client.c +1 −1
  1833. net/rxrpc/input.c +73 −56
  1834. net/rxrpc/local_object.c +1 −1
  1835. net/rxrpc/output.c +61 −21
  1836. net/rxrpc/peer_event.c +1 −1
  1837. net/rxrpc/peer_object.c +13 −3
  1838. net/rxrpc/recvmsg.c +1 −1
  1839. net/rxrpc/rtt.c +2 −1
  1840. net/rxrpc/rxkad.c +2 −1
  1841. net/rxrpc/sendmsg.c +3 −3
  1842. net/sched/act_ct.c +1 −1
  1843. net/sched/sch_cake.c +1 −1
  1844. net/sched/sch_red.c +4 −16
  1845. net/sched/sch_taprio.c +24 −6
  1846. net/sctp/ipv6.c +1 −1
  1847. net/sctp/outqueue.c +3 −3
  1848. net/sctp/sm_make_chunk.c +1 −1
  1849. net/sctp/sm_sideeffect.c +1 −1
  1850. net/sctp/sm_statefuns.c +1 −1
  1851. net/sctp/socket.c +6 −10
  1852. net/sctp/stream.c +4 −2
  1853. net/smc/smc_close.c +9 −8
  1854. net/smc/smc_core.c +3 −0
  1855. net/smc/smc_diag.c +9 −7
  1856. net/smc/smc_llc.c +14 −1
  1857. net/socket.c +2 −2
  1858. net/sunrpc/auth_gss/gss_krb5_wrap.c +1 −1
  1859. net/sunrpc/auth_gss/trace.c +0 −1
  1860. net/sunrpc/clnt.c +11 −11
  1861. net/sunrpc/xprt.c +1 −1
  1862. net/sunrpc/xprtrdma/verbs.c +1 −1
  1863. net/sunrpc/xprtsock.c +4 −4
  1864. net/tipc/Kconfig +1 −0
  1865. net/tipc/bearer.c +1 −1
  1866. net/tipc/crypto.c +11 −3
  1867. net/tipc/group.c +1 −1
  1868. net/tipc/link.c +1 −1
  1869. net/tipc/netlink_compat.c +11 −1
  1870. net/tipc/socket.c +8 −5
  1871. net/tipc/udp_media.c +3 −5
  1872. net/unix/af_unix.c +1 −1
  1873. net/wireless/chan.c +13 −6
  1874. net/wireless/mlme.c +1 −1
  1875. net/wireless/nl80211.c +11 −11
  1876. net/wireless/reg.c +3 −0
  1877. net/wireless/scan.c +1 −1
  1878. net/wireless/sme.c +2 −2
  1879. net/wireless/util.c +7 −5
  1880. net/wireless/wext-compat.c +2 −2
  1881. net/x25/x25_facilities.c +1 −1
  1882. net/x25/x25_in.c +1 −1
  1883. net/xfrm/xfrm_policy.c +1 −1
  1884. samples/bpf/hbm.c +1 −1
  1885. scripts/Makefile.extrawarn +1 −1
  1886. scripts/checkpatch.pl +2 −2
  1887. scripts/extract-cert.c +1 −1
  1888. scripts/genksyms/keywords.c +2 −2
  1889. scripts/kconfig/nconf.c +0 −1
  1890. scripts/kconfig/qconf.cc +77 −79
  1891. scripts/kconfig/qconf.h +3 −3
  1892. scripts/kconfig/streamline_config.pl +4 −1
  1893. security/apparmor/domain.c +1 −1
  1894. security/apparmor/lib.c +2 −2
  1895. security/integrity/ima/ima_appraise.c +2 −2
  1896. security/integrity/ima/ima_policy.c +4 −4
  1897. security/integrity/ima/ima_template_lib.c +1 −1
  1898. security/keys/process_keys.c +3 −3
  1899. security/keys/request_key.c +4 −4
  1900. security/selinux/hooks.c +1 −7
  1901. security/selinux/ss/mls.c +1 −3
  1902. security/smack/smack_lsm.c +1 −1
  1903. security/tomoyo/common.c +9 −9
  1904. security/tomoyo/file.c +1 −1
  1905. sound/core/oss/mulaw.c +2 −2
  1906. sound/core/timer.c +3 −4
  1907. sound/firewire/amdtp-stream.c +4 −4
  1908. sound/firewire/digi00x/digi00x.c +5 −0
  1909. sound/firewire/tascam/tascam.c +29 −4
  1910. sound/hda/hdac_bus.c +12 −0
  1911. sound/hda/hdac_controller.c +0 −11
  1912. sound/hda/hdac_device.c +2 −0
  1913. sound/hda/intel-dsp-config.c +5 −5
  1914. sound/isa/sscape.c +3 −3
  1915. sound/pci/asihpi/asihpi.c +4 −5
  1916. sound/pci/ca0106/ca0106_main.c +2 −1
  1917. sound/pci/hda/hda_intel.c +3 −4
  1918. sound/pci/hda/hda_tegra.c +7 −0
  1919. sound/pci/hda/patch_hdmi.c +7 −0
  1920. sound/pci/hda/patch_realtek.c +46 −1
  1921. sound/pci/riptide/riptide.c +3 −3
  1922. sound/pci/rme9652/hdsp.c +3 −3
  1923. sound/pci/rme9652/hdspm.c +3 −4
  1924. sound/ppc/snd_ps3.c +2 −2
  1925. sound/soc/amd/acp3x-rt5682-max9836.c +1 −1
  1926. sound/soc/amd/renoir/acp3x-pdm-dma.c +9 −20
  1927. sound/soc/atmel/mchp-i2s-mcc.c +1 −1
  1928. sound/soc/codecs/jz4770.c +1 −1
  1929. sound/soc/codecs/msm8916-wcd-analog.c +2 −2
  1930. sound/soc/codecs/pcm186x.c +1 −1
  1931. sound/soc/codecs/wm8958-dsp2.c +4 −0
  1932. sound/soc/codecs/wm8962.c +1 −1
  1933. sound/soc/codecs/wm8994.c +44 −16
  1934. sound/soc/fsl/fsl-asoc-card.c +70 −84
  1935. sound/soc/fsl/fsl_esai.c +3 −4
  1936. sound/soc/fsl/fsl_ssi.c +1 −1
  1937. sound/soc/fsl/mpc5200_dma.c +0 −1
  1938. sound/soc/hisilicon/hi6210-i2s.c +2 −2
  1939. sound/soc/intel/atom/sst-mfld-platform-pcm.c +3 −2
  1940. sound/soc/intel/baytrail/sst-baytrail-pcm.c +1 −1
  1941. sound/soc/intel/boards/bytcht_es8316.c +1 −1
  1942. sound/soc/intel/boards/bytcr_rt5651.c +2 −2
  1943. sound/soc/intel/skylake/skl-pcm.c +1 −1
  1944. sound/soc/meson/axg-tdm-interface.c +5 −5
  1945. sound/soc/pxa/pxa-ssp.c +1 −1
  1946. sound/soc/qcom/qdsp6/q6afe-dai.c +105 −105
  1947. sound/soc/qcom/qdsp6/q6routing.c +16 −0
  1948. sound/soc/rockchip/rockchip_pdm.c +3 −3
  1949. sound/soc/samsung/i2s.c +1 −1
  1950. sound/soc/sh/siu_pcm.c +4 −6
  1951. sound/soc/soc-component.c +1 −1
  1952. sound/soc/soc-core.c +1 −1
  1953. sound/soc/soc-topology.c +2 −2
  1954. sound/soc/sof/intel/hda-dai.c +2 −2
  1955. sound/soc/sof/pcm.c +2 −2
  1956. sound/soc/tegra/tegra186_dspk.c +2 −2
  1957. sound/soc/tegra/tegra210_admaif.c +2 −2
  1958. sound/soc/tegra/tegra210_ahub.c +2 −2
  1959. sound/soc/tegra/tegra210_dmic.c +2 −2
  1960. sound/soc/tegra/tegra210_i2s.c +2 −2
  1961. sound/soc/ti/davinci-i2s.c +1 −1
  1962. sound/soc/ti/n810.c +1 −1
  1963. sound/soc/ti/omap-dmic.c +2 −2
  1964. sound/soc/ti/omap-mcpdm.c +4 −4
  1965. sound/soc/ti/rx51.c +1 −1
  1966. sound/soc/txx9/txx9aclc.c +3 −4
  1967. sound/soc/zte/zx-i2s.c +2 −2
  1968. sound/soc/zte/zx-spdif.c +1 −1
  1969. sound/usb/midi.c +3 −4
  1970. sound/usb/misc/ua101.c +3 −4
  1971. sound/usb/mixer.c +7 −1
  1972. sound/usb/pcm.c +2 −0
  1973. sound/usb/quirks-table.h +99 −13
  1974. sound/usb/quirks.c +11 −0
  1975. sound/usb/usbaudio.h +1 −0
  1976. sound/x86/Kconfig +1 −1
  1977. tools/bpf/bpftool/btf_dumper.c +1 −1
  1978. tools/bpf/bpftool/gen.c +18 −4
  1979. tools/bpf/bpftool/link.c +2 −2
  1980. tools/bpf/bpftool/main.h +9 −1
  1981. tools/bpf/bpftool/pids.c +2 −0
  1982. tools/bpf/bpftool/prog.c +8 −8
  1983. tools/bpf/resolve_btfids/main.c +36 −0
  1984. tools/include/uapi/linux/bpf.h +5 −5
  1985. tools/include/uapi/linux/perf_event.h +1 −1
  1986. tools/lib/bpf/bpf_helpers.h +1 −1
  1987. tools/lib/bpf/btf.c +80 −3
  1988. tools/lib/bpf/btf.h +2 −0
  1989. tools/lib/bpf/btf_dump.c +37 −2
  1990. tools/lib/bpf/libbpf.c +22 −12
  1991. tools/lib/bpf/libbpf.map +2 −0
  1992. tools/lib/traceevent/event-parse.c +1 −1
  1993. tools/perf/Documentation/perf-record.txt +4 −0
  1994. tools/perf/Documentation/perf-stat.txt +7 −0
  1995. tools/perf/bench/synthesize.c +2 −2
  1996. tools/perf/builtin-record.c +1 −1
  1997. tools/perf/builtin-report.c +3 −0
  1998. tools/perf/builtin-sched.c +5 −1
  1999. tools/perf/builtin-stat.c +5 −3
  2000. tools/perf/builtin-top.c +2 −0
  2001. tools/perf/pmu-events/jevents.c +1 −1
  2002. tools/perf/tests/bpf.c +1 −1
  2003. tools/perf/tests/parse-events.c +2 −2
  2004. tools/perf/tests/parse-metric.c +3 −0
  2005. tools/perf/ui/browsers/hists.c +2 −1
  2006. tools/perf/util/arm-spe-decoder/arm-spe-decoder.c +3 −3
  2007. tools/perf/util/cs-etm.c +8 −1
  2008. tools/perf/util/intel-pt.c +8 −1
  2009. tools/perf/util/machine.c +0 −6
  2010. tools/perf/util/map.c +16 −0
  2011. tools/perf/util/map.h +8 −1
  2012. tools/perf/util/parse-events.c +19 −12
  2013. tools/perf/util/parse-events.y +4 −4
  2014. tools/perf/util/session.c +1 −1
  2015. tools/perf/util/stat-display.c +1 −1
  2016. tools/perf/util/stat.h +1 −0
  2017. tools/perf/util/symbol.c +1 −0
  2018. tools/perf/util/zstd.c +1 −1
  2019. tools/testing/selftests/bpf/.gitignore +0 −1
  2020. tools/testing/selftests/bpf/Makefile +1 −1
  2021. tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c +4 −4
  2022. tools/testing/selftests/bpf/prog_tests/btf_dump.c +20 −7
  2023. tools/testing/selftests/bpf/prog_tests/core_extern.c +2 −2
  2024. tools/testing/selftests/bpf/prog_tests/core_reloc.c +10 −10
  2025. tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c +3 −3
  2026. tools/testing/selftests/bpf/prog_tests/flow_dissector.c +1 −1
  2027. tools/testing/selftests/bpf/prog_tests/global_data.c +3 −3
  2028. tools/testing/selftests/bpf/prog_tests/mmap.c +13 −6
  2029. tools/testing/selftests/bpf/prog_tests/prog_run_xattr.c +1 −1
  2030. tools/testing/selftests/bpf/prog_tests/sk_lookup.c +1 −0
  2031. tools/testing/selftests/bpf/prog_tests/skb_ctx.c +1 −1
  2032. tools/testing/selftests/bpf/prog_tests/test_global_funcs.c +1 −1
  2033. tools/testing/selftests/bpf/prog_tests/varlen.c +4 −4
  2034. tools/testing/selftests/bpf/progs/core_reloc_types.h +37 −32
  2035. tools/testing/selftests/bpf/progs/test_tcpbpf_kern.c +41 −0
  2036. tools/testing/selftests/bpf/progs/test_varlen.c +3 −3
  2037. tools/testing/selftests/bpf/test_btf.c +4 −4
  2038. tools/testing/selftests/bpf/test_maps.c +2 −0
  2039. tools/testing/selftests/bpf/test_progs.c +3 −1
  2040. tools/testing/selftests/bpf/test_progs.h +5 −0
  2041. tools/testing/selftests/kvm/x86_64/debug_regs.c +2 −2
  2042. tools/testing/selftests/net/icmp_redirect.sh +2 −0
  2043. tools/testing/selftests/netfilter/nft_flowtable.sh +75 −55
  2044. tools/testing/selftests/powerpc/mm/.gitignore +1 −0
  2045. tools/testing/selftests/powerpc/mm/Makefile +3 −1
  2046. tools/testing/selftests/powerpc/mm/prot_sao.c +43 −0
  2047. tools/testing/selftests/x86/test_vsyscall.c +20 −2
  2048. tools/usb/Build +2 −0
  2049. tools/usb/Makefile +45 −8
  2050. virt/kvm/kvm_main.c +2 −1
.clang-format+12−0
@@ -111,6 +111,7 @@ ForEachMacros: · 110 unmodified lines
111111 - 'css_for_each_descendant_pre'
112112 - 'device_for_each_child_node'
113113 - 'dma_fence_chain_for_each'
114+ - 'do_for_each_ftrace_op'
114115 - 'drm_atomic_crtc_for_each_plane'
115116 - 'drm_atomic_crtc_state_for_each_plane'
116117 - 'drm_atomic_crtc_state_for_each_plane_state'
@@ -136,6 +137,7 @@ ForEachMacros: · 19 unmodified lines
136137 - 'for_each_active_dev_scope'
137138 - 'for_each_active_drhd_unit'
138139 - 'for_each_active_iommu'
140+ - 'for_each_aggr_pgid'
139141 - 'for_each_available_child_of_node'
140142 - 'for_each_bio'
141143 - 'for_each_board_func_rsrc'
@@ -234,6 +236,7 @@ ForEachMacros: · 92 unmodified lines
234236 - 'for_each_node_state'
235237 - 'for_each_node_with_cpus'
236238 - 'for_each_node_with_property'
239+ - 'for_each_nonreserved_multicast_dest_pgid'
237240 - 'for_each_of_allnodes'
238241 - 'for_each_of_allnodes_from'
239242 - 'for_each_of_cpu_node'
@@ -256,6 +259,7 @@ ForEachMacros: · 16 unmodified lines
256259 - 'for_each_pci_dev'
257260 - 'for_each_pci_msi_entry'
258261 - 'for_each_pcm_streams'
262+ - 'for_each_physmem_range'
259263 - 'for_each_populated_zone'
260264 - 'for_each_possible_cpu'
261265 - 'for_each_present_cpu'
@@ -265,6 +269,8 @@ ForEachMacros: · 3 unmodified lines
265269 - 'for_each_process_thread'
266270 - 'for_each_property_of_node'
267271 - 'for_each_registered_fb'
272+ - 'for_each_requested_gpio'
273+ - 'for_each_requested_gpio_in_range'
268274 - 'for_each_reserved_mem_region'
269275 - 'for_each_rtd_codec_dais'
270276 - 'for_each_rtd_codec_dais_rollback'
@@ -278,12 +284,17 @@ ForEachMacros: · 7 unmodified lines
278284 - 'for_each_sg'
279285 - 'for_each_sg_dma_page'
280286 - 'for_each_sg_page'
287+ - 'for_each_sgtable_dma_page'
288+ - 'for_each_sgtable_dma_sg'
289+ - 'for_each_sgtable_page'
290+ - 'for_each_sgtable_sg'
281291 - 'for_each_sibling_event'
282292 - 'for_each_subelement'
283293 - 'for_each_subelement_extid'
284294 - 'for_each_subelement_id'
285295 - '__for_each_thread'
286296 - 'for_each_thread'
297+ - 'for_each_unicast_dest_pgid'
287298 - 'for_each_wakeup_source'
288299 - 'for_each_zone'
289300 - 'for_each_zone_zonelist'
@@ -464,6 +475,7 @@ ForEachMacros: · 174 unmodified lines
464475 - 'v4l2_m2m_for_each_src_buf'
465476 - 'v4l2_m2m_for_each_src_buf_safe'
466477 - 'virtio_device_for_each_vq'
478+ - 'while_for_each_ftrace_op'
467479 - 'xa_for_each'
468480 - 'xa_for_each_marked'
469481 - 'xa_for_each_range'
.mailmap+61−57
@@ -15,30 +15,31 @@ · 14 unmodified lines
1515 Aaron Durbin <adurbin@google.com>
1616 Adam Oldham <oldhamca@gmail.com>
1717 Adam Radford <aradford@gmail.com>
18−Adrian Bunk <bunk@stusta.de>
1918 Adriana Reus <adi.reus@gmail.com> <adriana.reus@intel.com>
19+Adrian Bunk <bunk@stusta.de>
2020 Alan Cox <alan@lxorguk.ukuu.org.uk>
2121 Alan Cox <root@hraefn.swansea.linux.org.uk>
22−Aleksey Gorelov <aleksey_gorelov@phoenix.com>
2322 Aleksandar Markovic <aleksandar.markovic@mips.com> <aleksandar.markovic@imgtec.com>
24−Alex Shi <alex.shi@linux.alibaba.com> <alex.shi@intel.com>
25−Alex Shi <alex.shi@linux.alibaba.com> <alex.shi@linaro.org>
23+Aleksey Gorelov <aleksey_gorelov@phoenix.com>
2624 Alexander Lobakin <alobakin@pm.me> <alobakin@dlink.ru>
2725 Alexander Lobakin <alobakin@pm.me> <alobakin@marvell.com>
2826 Alexander Lobakin <alobakin@pm.me> <bloodyreaper@yandex.ru>
2927 Alexandre Belloni <alexandre.belloni@bootlin.com> <alexandre.belloni@free-electrons.com>
30−Alexei Starovoitov <ast@kernel.org> <ast@plumgrid.com>
3128 Alexei Starovoitov <ast@kernel.org> <alexei.starovoitov@gmail.com>
3229 Alexei Starovoitov <ast@kernel.org> <ast@fb.com>
30+Alexei Starovoitov <ast@kernel.org> <ast@plumgrid.com>
31+Alex Shi <alex.shi@linux.alibaba.com> <alex.shi@intel.com>
32+Alex Shi <alex.shi@linux.alibaba.com> <alex.shi@linaro.org>
3333 Al Viro <viro@ftp.linux.org.uk>
3434 Al Viro <viro@zenIV.linux.org.uk>
35+Andi Kleen <ak@linux.intel.com> <ak@suse.de>
3536 Andi Shyti <andi@etezian.org> <andi.shyti@samsung.com>
3637 Andreas Herrmann <aherrman@de.ibm.com>
37−Andrey Ryabinin <ryabinin.a.a@gmail.com> <a.ryabinin@samsung.com>
3838 Andrew Morton <akpm@linux-foundation.org>
39−Andrew Murray <amurray@thegoodpenguin.co.uk> <andrew.murray@arm.com>
4039 Andrew Murray <amurray@thegoodpenguin.co.uk> <amurray@embedded-bits.co.uk>
40+Andrew Murray <amurray@thegoodpenguin.co.uk> <andrew.murray@arm.com>
4141 Andrew Vasquez <andrew.vasquez@qlogic.com>
42+Andrey Ryabinin <ryabinin.a.a@gmail.com> <a.ryabinin@samsung.com>
4243 Andy Adamson <andros@citi.umich.edu>
4344 Antoine Tenart <antoine.tenart@free-electrons.com>
4445 Antonio Ospite <ao2@ao2.it> <ao2@amarulasolutions.com>
@@ -48,40 +49,42 @@ Arnaud Patard <arnaud.patard@rtp-net.org> · 3 unmodified lines
4849 Arnd Bergmann <arnd@arndb.de>
4950 Axel Dyks <xl@xlsigned.net>
5051 Axel Lin <axel.lin@gmail.com>
51−Bart Van Assche <bvanassche@acm.org> <bart.vanassche@wdc.com>
5252 Bart Van Assche <bvanassche@acm.org> <bart.vanassche@sandisk.com>
53+Bart Van Assche <bvanassche@acm.org> <bart.vanassche@wdc.com>
5354 Ben Gardner <bgardner@wabtec.com>
5455 Ben M Cahill <ben.m.cahill@intel.com>
5556 Björn Steinbrink <B.Steinbrink@gmx.de>
56−Boris Brezillon <bbrezillon@kernel.org> <boris.brezillon@bootlin.com>
57−Boris Brezillon <bbrezillon@kernel.org> <boris.brezillon@free-electrons.com>
5857 Boris Brezillon <bbrezillon@kernel.org> <b.brezillon.dev@gmail.com>
5958 Boris Brezillon <bbrezillon@kernel.org> <b.brezillon@overkiz.com>
59+Boris Brezillon <bbrezillon@kernel.org> <boris.brezillon@bootlin.com>
60+Boris Brezillon <bbrezillon@kernel.org> <boris.brezillon@free-electrons.com>
6061 Brian Avery <b.avery@hp.com>
6162 Brian King <brking@us.ibm.com>
63+Changbin Du <changbin.du@intel.com> <changbin.du@gmail.com>
64+Changbin Du <changbin.du@intel.com> <changbin.du@intel.com>
6265 Chao Yu <chao@kernel.org> <chao2.yu@samsung.com>
6366 Chao Yu <chao@kernel.org> <yuchao0@huawei.com>
64−Christoph Hellwig <hch@lst.de>
6567 Christophe Ricard <christophe.ricard@gmail.com>
68+Christoph Hellwig <hch@lst.de>
6669 Corey Minyard <minyard@acm.org>
6770 Damian Hobson-Garcia <dhobsong@igel.co.jp>
68−Daniel Borkmann <daniel@iogearbox.net> <dborkman@redhat.com>
69−Daniel Borkmann <daniel@iogearbox.net> <dborkmann@redhat.com>
71+Daniel Borkmann <daniel@iogearbox.net> <danborkmann@googlemail.com>
7072 Daniel Borkmann <daniel@iogearbox.net> <danborkmann@iogearbox.net>
7173 Daniel Borkmann <daniel@iogearbox.net> <daniel.borkmann@tik.ee.ethz.ch>
72−Daniel Borkmann <daniel@iogearbox.net> <danborkmann@googlemail.com>
74+Daniel Borkmann <daniel@iogearbox.net> <dborkmann@redhat.com>
75+Daniel Borkmann <daniel@iogearbox.net> <dborkman@redhat.com>
7376 Daniel Borkmann <daniel@iogearbox.net> <dxchgb@gmail.com>
7477 David Brownell <david-b@pacbell.net>
7578 David Woodhouse <dwmw2@shinybook.infradead.org>
76−Dengcheng Zhu <dzhu@wavecomp.com> <dengcheng.zhu@mips.com>
77−Dengcheng Zhu <dzhu@wavecomp.com> <dengcheng.zhu@imgtec.com>
7879 Dengcheng Zhu <dzhu@wavecomp.com> <dczhu@mips.com>
7980 Dengcheng Zhu <dzhu@wavecomp.com> <dengcheng.zhu@gmail.com>
81+Dengcheng Zhu <dzhu@wavecomp.com> <dengcheng.zhu@imgtec.com>
82+Dengcheng Zhu <dzhu@wavecomp.com> <dengcheng.zhu@mips.com>
8083 <dev.kurt@vandijck-laurijssen.be> <kurt.van.dijck@eia.be>
8184 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
82−Dmitry Safonov <0x7f454c46@gmail.com> <dsafonov@virtuozzo.com>
83−Dmitry Safonov <0x7f454c46@gmail.com> <d.safonov@partner.samsung.com>
8485 Dmitry Safonov <0x7f454c46@gmail.com> <dima@arista.com>
86+Dmitry Safonov <0x7f454c46@gmail.com> <d.safonov@partner.samsung.com>
87+Dmitry Safonov <0x7f454c46@gmail.com> <dsafonov@virtuozzo.com>
8588 Domen Puncer <domen@coderock.org>
8689 Douglas Gilbert <dougg@torque.net>
8790 Ed L. Cashin <ecashin@coraid.com>
@@ -92,20 +95,22 @@ Felix Kuhling <fxkuehl@gmx.de> · 4 unmodified lines
9295 Felix Moeller <felix@derklecks.de>
9396 Filipe Lautert <filipe@icewall.org>
9497 Franck Bui-Huu <vagabon.xyz@gmail.com>
95−Frank Rowand <frowand.list@gmail.com> <frowand@mvista.com>
9698 Frank Rowand <frowand.list@gmail.com> <frank.rowand@am.sony.com>
9799 Frank Rowand <frowand.list@gmail.com> <frank.rowand@sonymobile.com>
100+Frank Rowand <frowand.list@gmail.com> <frowand@mvista.com>
98101 Frank Zago <fzago@systemfabricworks.com>
99102 Gao Xiang <xiang@kernel.org> <gaoxiang25@huawei.com>
100103 Gao Xiang <xiang@kernel.org> <hsiangkao@aol.com>
101−Gerald Schaefer <gerald.schaefer@linux.ibm.com> <gerald.schaefer@de.ibm.com>
102104 Gerald Schaefer <gerald.schaefer@linux.ibm.com> <geraldsc@de.ibm.com>
105+Gerald Schaefer <gerald.schaefer@linux.ibm.com> <gerald.schaefer@de.ibm.com>
103106 Gerald Schaefer <gerald.schaefer@linux.ibm.com> <geraldsc@linux.vnet.ibm.com>
104107 Greg Kroah-Hartman <greg@echidna.(none)>
105108 Greg Kroah-Hartman <gregkh@suse.de>
106109 Greg Kroah-Hartman <greg@kroah.com>
107110 Greg Kurz <groug@kaod.org> <gkurz@linux.vnet.ibm.com>
108111 Gregory CLEMENT <gregory.clement@bootlin.com> <gregory.clement@free-electrons.com>
112+Gustavo Padovan <gustavo@las.ic.unicamp.br>
113+Gustavo Padovan <padovan@profusion.mobi>
109114 Hanjun Guo <guohanjun@huawei.com> <hanjun.guo@linaro.org>
110115 Heiko Carstens <hca@linux.ibm.com> <h.carstens@de.ibm.com>
111116 Heiko Carstens <hca@linux.ibm.com> <heiko.carstens@de.ibm.com>
@@ -115,32 +120,33 @@ Henrik Rydberg <rydberg@bitmath.org> · 3 unmodified lines
115120 Herbert Xu <herbert@gondor.apana.org.au>
116121 Jacob Shin <Jacob.Shin@amd.com>
117122 Jaegeuk Kim <jaegeuk@kernel.org> <jaegeuk@google.com>
118−Jaegeuk Kim <jaegeuk@kernel.org> <jaegeuk@motorola.com>
119123 Jaegeuk Kim <jaegeuk@kernel.org> <jaegeuk.kim@samsung.com>
124+Jaegeuk Kim <jaegeuk@kernel.org> <jaegeuk@motorola.com>
120125 Jakub Kicinski <kuba@kernel.org> <jakub.kicinski@netronome.com>
121126 James Bottomley <jejb@mulgrave.(none)>
122127 James Bottomley <jejb@titanic.il.steeleye.com>
123128 James E Wilson <wilson@specifix.com>
124−James Hogan <jhogan@kernel.org> <james.hogan@imgtec.com>
125129 James Hogan <jhogan@kernel.org> <james@albanarts.com>
130+James Hogan <jhogan@kernel.org> <james.hogan@imgtec.com>
126131 James Ketrenos <jketreno@io.(none)>
127132 Jan Glauber <jan.glauber@gmail.com> <jang@de.ibm.com>
128133 Jan Glauber <jan.glauber@gmail.com> <jang@linux.vnet.ibm.com>
129134 Jan Glauber <jan.glauber@gmail.com> <jglauber@cavium.com>
130135 Jason Gunthorpe <jgg@ziepe.ca> <jgg@mellanox.com>
136+Jason Gunthorpe <jgg@ziepe.ca> <jgg@nvidia.com>
131137 Jason Gunthorpe <jgg@ziepe.ca> <jgunthorpe@obsidianresearch.com>
132−Javi Merino <javi.merino@kernel.org> <javi.merino@arm.com>
133138 <javier@osg.samsung.com> <javier.martinez@collabora.co.uk>
139+Javi Merino <javi.merino@kernel.org> <javi.merino@arm.com>
134140 Jayachandran C <c.jayachandran@gmail.com> <jayachandranc@netlogicmicro.com>
135141 Jayachandran C <c.jayachandran@gmail.com> <jchandra@broadcom.com>
136142 Jayachandran C <c.jayachandran@gmail.com> <jchandra@digeo.com>
137143 Jayachandran C <c.jayachandran@gmail.com> <jnair@caviumnetworks.com>
138−Jean Tourrilhes <jt@hpl.hp.com>
139144 <jean-philippe@linaro.org> <jean-philippe.brucker@arm.com>
145+Jean Tourrilhes <jt@hpl.hp.com>
140146 Jeff Garzik <jgarzik@pretzel.yyz.us>
141−Jeff Layton <jlayton@kernel.org> <jlayton@redhat.com>
142147 Jeff Layton <jlayton@kernel.org> <jlayton@poochiereds.net>
143148 Jeff Layton <jlayton@kernel.org> <jlayton@primarydata.com>
149+Jeff Layton <jlayton@kernel.org> <jlayton@redhat.com>
144150 Jens Axboe <axboe@suse.de>
145151 Jens Osterkamp <Jens.Osterkamp@de.ibm.com>
146152 Jiri Slaby <jirislaby@kernel.org> <jirislaby@gmail.com>
@@ -164,30 +170,31 @@ Julien Thierry <julien.thierry.kdev@gmail.com> <julien.thierry@arm.com> · 17 unmodified lines
164170 Kamil Konieczny <k.konieczny@samsung.com> <k.konieczny@partner.samsung.com>
165171 Kay Sievers <kay.sievers@vrfy.org>
166172 Kenneth W Chen <kenneth.w.chen@intel.com>
167−Konstantin Khlebnikov <koct9i@gmail.com> <k.khlebnikov@samsung.com>
168173 Konstantin Khlebnikov <koct9i@gmail.com> <khlebnikov@yandex-team.ru>
174+Konstantin Khlebnikov <koct9i@gmail.com> <k.khlebnikov@samsung.com>
169175 Koushik <raghavendra.koushik@neterion.com>
170−Krzysztof Kozlowski <krzk@kernel.org> <k.kozlowski@samsung.com>
171176 Krzysztof Kozlowski <krzk@kernel.org> <k.kozlowski.k@gmail.com>
177+Krzysztof Kozlowski <krzk@kernel.org> <k.kozlowski@samsung.com>
172178 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
173−Leon Romanovsky <leon@kernel.org> <leon@leon.nu>
174−Leon Romanovsky <leon@kernel.org> <leonro@mellanox.com>
175179 Leonardo Bras <leobras.c@gmail.com> <leonardo@linux.ibm.com>
176180 Leonid I Ananiev <leonid.i.ananiev@intel.com>
181+Leon Romanovsky <leon@kernel.org> <leon@leon.nu>
182+Leon Romanovsky <leon@kernel.org> <leonro@mellanox.com>
183+Leon Romanovsky <leon@kernel.org> <leonro@nvidia.com>
177184 Linas Vepstas <linas@austin.ibm.com>
178−Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@web.de>
179185 Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@ascom.ch>
180−Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org>
186+Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@web.de>
181187 Li Yang <leoyang.li@nxp.com> <leoli@freescale.com>
188+Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org>
182189 Lukasz Luba <lukasz.luba@arm.com> <l.luba@partner.samsung.com>
183190 Maciej W. Rozycki <macro@mips.com> <macro@imgtec.com>
184−Marc Zyngier <maz@kernel.org> <marc.zyngier@arm.com>
185191 Marcin Nowakowski <marcin.nowakowski@mips.com> <marcin.nowakowski@imgtec.com>
192+Marc Zyngier <maz@kernel.org> <marc.zyngier@arm.com>
186193 Mark Brown <broonie@sirena.org.uk>
187194 Mark Yao <markyao0591@gmail.com> <mark.yao@rock-chips.com>
188−Martin Kepplinger <martink@posteo.de> <martin.kepplinger@theobroma-systems.com>
189195 Martin Kepplinger <martink@posteo.de> <martin.kepplinger@ginzinger.com>
190196 Martin Kepplinger <martink@posteo.de> <martin.kepplinger@puri.sm>
197+Martin Kepplinger <martink@posteo.de> <martin.kepplinger@theobroma-systems.com>
191198 Mathieu Othacehe <m.othacehe@gmail.com>
192199 Matthew Wilcox <willy@infradead.org> <matthew.r.wilcox@intel.com>
193200 Matthew Wilcox <willy@infradead.org> <matthew@wil.cx>
@@ -197,17 +204,17 @@ Matthew Wilcox <willy@infradead.org> <willy@debian.org> · 3 unmodified lines
197204 Matthew Wilcox <willy@infradead.org> <willy@linux.intel.com>
198205 Matthew Wilcox <willy@infradead.org> <willy@parisc-linux.org>
199206 Matthieu CASTET <castet.matthieu@free.fr>
200−Mauro Carvalho Chehab <mchehab@kernel.org> <mchehab@brturbo.com.br>
207+Matt Ranostay <matt.ranostay@konsulko.com> <matt@ranostay.consulting>
208+Matt Ranostay <mranostay@gmail.com> Matthew Ranostay <mranostay@embeddedalley.com>
209+Matt Ranostay <mranostay@gmail.com> <matt.ranostay@intel.com>
210+Matt Redfearn <matt.redfearn@mips.com> <matt.redfearn@imgtec.com>
201211 Mauro Carvalho Chehab <mchehab@kernel.org> <maurochehab@gmail.com>
212+Mauro Carvalho Chehab <mchehab@kernel.org> <mchehab@brturbo.com.br>
202213 Mauro Carvalho Chehab <mchehab@kernel.org> <mchehab@infradead.org>
214+Mauro Carvalho Chehab <mchehab@kernel.org> <mchehab@osg.samsung.com>
203215 Mauro Carvalho Chehab <mchehab@kernel.org> <mchehab@redhat.com>
204216 Mauro Carvalho Chehab <mchehab@kernel.org> <m.chehab@samsung.com>
205−Mauro Carvalho Chehab <mchehab@kernel.org> <mchehab@osg.samsung.com>
206217 Mauro Carvalho Chehab <mchehab@kernel.org> <mchehab@s-opensource.com>
207−Matt Ranostay <mranostay@gmail.com> Matthew Ranostay <mranostay@embeddedalley.com>
208−Matt Ranostay <mranostay@gmail.com> <matt.ranostay@intel.com>
209−Matt Ranostay <matt.ranostay@konsulko.com> <matt@ranostay.consulting>
210−Matt Redfearn <matt.redfearn@mips.com> <matt.redfearn@imgtec.com>
211218 Maxime Ripard <mripard@kernel.org> <maxime.ripard@bootlin.com>
212219 Maxime Ripard <mripard@kernel.org> <maxime.ripard@free-electrons.com>
213220 Mayuresh Janorkar <mayur@ti.com>
@@ -239,13 +246,13 @@ Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> · 25 unmodified lines
239246 Patrick Mochel <mochel@digitalimplant.org>
240247 Paul Burton <paulburton@kernel.org> <paul.burton@imgtec.com>
241248 Paul Burton <paulburton@kernel.org> <paul.burton@mips.com>
249+Paul E. McKenney <paulmck@kernel.org> <paul.mckenney@linaro.org>
242250 Paul E. McKenney <paulmck@kernel.org> <paulmck@linux.ibm.com>
243251 Paul E. McKenney <paulmck@kernel.org> <paulmck@linux.vnet.ibm.com>
244−Paul E. McKenney <paulmck@kernel.org> <paul.mckenney@linaro.org>
245252 Paul E. McKenney <paulmck@kernel.org> <paulmck@us.ibm.com>
246253 Peter A Jonsson <pj@ludd.ltu.se>
247−Peter Oruba <peter@oruba.de>
248254 Peter Oruba <peter.oruba@amd.com>
255+Peter Oruba <peter@oruba.de>
249256 Pratyush Anand <pratyush.anand@gmail.com> <pratyush.anand@st.com>
250257 Praveen BP <praveenbp@ti.com>
251258 Punit Agrawal <punitagrawal@gmail.com> <punit.agrawal@arm.com>
@@ -258,23 +265,23 @@ Ralf Baechle <ralf@linux-mips.org> · 6 unmodified lines
258265 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
259266 Randy Dunlap <rdunlap@infradead.org> <rdunlap@xenotime.net>
260267 Rémi Denis-Courmont <rdenis@simphalempin.com>
261−Ricardo Ribalda <ribalda@kernel.org> <ricardo.ribalda@gmail.com>
262268 Ricardo Ribalda <ribalda@kernel.org> <ricardo@ribalda.com>
263269 Ricardo Ribalda <ribalda@kernel.org> Ricardo Ribalda Delgado <ribalda@kernel.org>
270+Ricardo Ribalda <ribalda@kernel.org> <ricardo.ribalda@gmail.com>
264271 Ross Zwisler <zwisler@kernel.org> <ross.zwisler@linux.intel.com>
265272 Rudolf Marek <R.Marek@sh.cvut.cz>
266273 Rui Saraiva <rmps@joel.ist.utl.pt>
267274 Sachin P Sant <ssant@in.ibm.com>
268−Sarangdhar Joshi <spjoshi@codeaurora.org>
275+Sakari Ailus <sakari.ailus@linux.intel.com> <sakari.ailus@iki.fi>
269276 Sam Ravnborg <sam@mars.ravnborg.org>
270−Santosh Shilimkar <ssantosh@kernel.org>
271277 Santosh Shilimkar <santosh.shilimkar@oracle.org>
278+Santosh Shilimkar <ssantosh@kernel.org>
279+Sarangdhar Joshi <spjoshi@codeaurora.org>
272280 Sascha Hauer <s.hauer@pengutronix.de>
273281 S.Çağlar Onur <caglar@pardus.org.tr>
274−Sakari Ailus <sakari.ailus@linux.intel.com> <sakari.ailus@iki.fi>
275282 Sean Nyekjaer <sean@geanix.com> <sean.nyekjaer@prevas.dk>
276−Sebastian Reichel <sre@kernel.org> <sre@debian.org>
277283 Sebastian Reichel <sre@kernel.org> <sebastian.reichel@collabora.co.uk>
284+Sebastian Reichel <sre@kernel.org> <sre@debian.org>
278285 Sedat Dilek <sedat.dilek@gmail.com> <sedat.dilek@credativ.de>
279286 Shiraz Hashim <shiraz.linux.kernel@gmail.com> <shiraz.hashim@st.com>
280287 Shuah Khan <shuah@kernel.org> <shuahkhan@gmail.com>
@@ -285,18 +292,21 @@ Simon Arlott <simon@octiron.net> <simon@fire.lp0.eu> · 4 unmodified lines
285292 Simon Kelley <simon@thekelleys.org.uk>
286293 Stéphane Witzmann <stephane.witzmann@ubpmes.univ-bpclermont.fr>
287294 Stephen Hemminger <shemminger@osdl.org>
295+Steve Wise <larrystevenwise@gmail.com> <swise@chelsio.com>
296+Steve Wise <larrystevenwise@gmail.com> <swise@opengridcomputing.com>
288297 Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
289298 Subhash Jadavani <subhashj@codeaurora.org>
290299 Sudeep Holla <sudeep.holla@arm.com> Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>
291300 Sumit Semwal <sumit.semwal@ti.com>
301+Takashi YOSHII <takashi.yoshii.zj@renesas.com>
292302 Tejun Heo <htejun@gmail.com>
293303 Thomas Graf <tgraf@suug.ch>
294304 Thomas Pedersen <twp@codeaurora.org>
295305 Tiezhu Yang <yangtiezhu@loongson.cn> <kernelpatch@126.com>
296306 Todor Tomov <todor.too@gmail.com> <todor.tomov@linaro.org>
297307 Tony Luck <tony.luck@intel.com>
298−TripleX Chung <xxx.phy@gmail.com> <zhongyu@18mail.cn>
299308 TripleX Chung <xxx.phy@gmail.com> <triplex@zh-kernel.org>
309+TripleX Chung <xxx.phy@gmail.com> <zhongyu@18mail.cn>
300310 Tsuneo Yoshioka <Tsuneo.Yoshioka@f-secure.com>
301311 Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
302312 Uwe Kleine-König <ukl@pengutronix.de>
@@ -305,22 +315,16 @@ Valdis Kletnieks <Valdis.Kletnieks@vt.edu> · 2 unmodified lines
305315 Vinod Koul <vkoul@kernel.org> <vinod.koul@intel.com>
306316 Vinod Koul <vkoul@kernel.org> <vinod.koul@linux.intel.com>
307317 Vinod Koul <vkoul@kernel.org> <vkoul@infradead.org>
318+Viresh Kumar <vireshk@kernel.org> <viresh.kumar2@arm.com>
308319 Viresh Kumar <vireshk@kernel.org> <viresh.kumar@st.com>
309320 Viresh Kumar <vireshk@kernel.org> <viresh.linux@gmail.com>
310−Viresh Kumar <vireshk@kernel.org> <viresh.kumar2@arm.com>
311321 Vivien Didelot <vivien.didelot@gmail.com> <vivien.didelot@savoirfairelinux.com>
312322 Vlad Dogaru <ddvlad@gmail.com> <vlad.dogaru@intel.com>
313−Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@virtuozzo.com>
314323 Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
315−Takashi YOSHII <takashi.yoshii.zj@renesas.com>
324+Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@virtuozzo.com>
325+WeiXiong Liao <gmpy.liaowx@gmail.com> <liaoweixiong@allwinnertech.com>
316326 Will Deacon <will@kernel.org> <will.deacon@arm.com>
317−Wolfram Sang <wsa@kernel.org> <wsa@the-dreams.de>
318327 Wolfram Sang <wsa@kernel.org> <w.sang@pengutronix.de>
328+Wolfram Sang <wsa@kernel.org> <wsa@the-dreams.de>
319329 Yakir Yang <kuankuan.y@gmail.com> <ykk@rock-chips.com>
320330 Yusuke Goda <goda.yusuke@renesas.com>
321−Gustavo Padovan <gustavo@las.ic.unicamp.br>
322−Gustavo Padovan <padovan@profusion.mobi>
323−Changbin Du <changbin.du@intel.com> <changbin.du@intel.com>
324−Changbin Du <changbin.du@intel.com> <changbin.du@gmail.com>
325−Steve Wise <larrystevenwise@gmail.com> <swise@chelsio.com>
326−Steve Wise <larrystevenwise@gmail.com> <swise@opengridcomputing.com>
Documentation/ABI/testing/sysfs-bus-event_source-devices-hv_24x7+1−1
@@ -43,7 +43,7 @@ Description: read only · 42 unmodified lines
4343 This sysfs interface exposes the number of cores per chip
4444 present in the system.
4545
46−What: /sys/devices/hv_24x7/interface/cpumask
46+What: /sys/devices/hv_24x7/cpumask
4747 Date: July 2020
4848 Contact: Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
4949 Description: read only
Documentation/RCU/lockdep.rst+1−1
@@ -49,7 +49,7 @@ checking of rcu_dereference() primitives: · 48 unmodified lines
4949 is invoked by both RCU-sched readers and updaters.
5050 srcu_dereference_check(p, c):
5151 Use explicit check expression "c" along with
52− srcu_read_lock_held()(). This is useful in code that
52+ srcu_read_lock_held(). This is useful in code that
5353 is invoked by both SRCU readers and updaters.
5454 rcu_dereference_raw(p):
5555 Don't check. (Use sparingly, if at all.)
Documentation/admin-guide/devices.txt+1−1
@@ -1662,7 +1662,7 @@ · 1661 unmodified lines
16621662
16631663 98 block User-mode virtual block device
16641664 0 = /dev/ubda First user-mode block device
1665− 16 = /dev/udbb Second user-mode block device
1665+ 16 = /dev/ubdb Second user-mode block device
16661666 ...
16671667
16681668 Partitions are handled in the same way as for IDE
Documentation/admin-guide/ext4.rst+13−10
@@ -489,6 +489,9 @@ Files in /sys/fs/ext4/<devname>: · 488 unmodified lines
489489 multiple of this tuning parameter if the stripe size is not set in the
490490 ext4 superblock
491491
492+ mb_max_inode_prealloc
493+ The maximum length of per-inode ext4_prealloc_space list.
494+
492495 mb_max_to_scan
493496 The maximum number of extents the multiblock allocator will search to
494497 find the best extent.
@@ -529,21 +532,21 @@ Files in /sys/fs/ext4/<devname>: · 34 unmodified lines
529532 Ioctls
530533 ======
531534
532−There is some Ext4 specific functionality which can be accessed by applications
533−through the system call interfaces. The list of all Ext4 specific ioctls are
534−shown in the table below.
535+Ext4 implements various ioctls which can be used by applications to access
536+ext4-specific functionality. An incomplete list of these ioctls is shown in the
537+table below. This list includes truly ext4-specific ioctls (``EXT4_IOC_*``) as
538+well as ioctls that may have been ext4-specific originally but are now supported
539+by some other filesystem(s) too (``FS_IOC_*``).
535540
536−Table of Ext4 specific ioctls
541+Table of Ext4 ioctls
537542
538− EXT4_IOC_GETFLAGS
543+ FS_IOC_GETFLAGS
539544 Get additional attributes associated with inode. The ioctl argument is
540− an integer bitfield, with bit values described in ext4.h. This ioctl is
541− an alias for FS_IOC_GETFLAGS.
545+ an integer bitfield, with bit values described in ext4.h.
542546
543− EXT4_IOC_SETFLAGS
547+ FS_IOC_SETFLAGS
544548 Set additional attributes associated with inode. The ioctl argument is
545− an integer bitfield, with bit values described in ext4.h. This ioctl is
546− an alias for FS_IOC_SETFLAGS.
549+ an integer bitfield, with bit values described in ext4.h.
547550
548551 EXT4_IOC_GETVERSION, EXT4_IOC_GETVERSION_OLD
549552 Get the inode i_generation number stored for each inode. The
Documentation/admin-guide/kernel-parameters.txt+1−4
@@ -1233,8 +1233,7 @@ · 1232 unmodified lines
12331233 efi= [EFI]
12341234 Format: { "debug", "disable_early_pci_dma",
12351235 "nochunk", "noruntime", "nosoftreserve",
1236− "novamap", "no_disable_early_pci_dma",
1237− "old_map" }
1236+ "novamap", "no_disable_early_pci_dma" }
12381237 debug: enable misc debug output.
12391238 disable_early_pci_dma: disable the busmaster bit on all
12401239 PCI bridges while in the EFI boot stub.
@@ -1251,8 +1250,6 @@ · 10 unmodified lines
12511250 novamap: do not call SetVirtualAddressMap().
12521251 no_disable_early_pci_dma: Leave the busmaster bit set
12531252 on all PCI bridges while in the EFI boot stub
1254− old_map [X86-64]: switch to the old ioremap-based EFI
1255− runtime services mapping. [Needs CONFIG_X86_UV=y]
12561253
12571254 efi_no_storage_paranoia [EFI; X86]
12581255 Using this parameter you can use more than 50% of
Documentation/admin-guide/laptops/thinkpad-acpi.rst+1−1
@@ -1434,7 +1434,7 @@ on the feature, restricting the viewing angles. · 1433 unmodified lines
14341434
14351435
14361436 DYTC Lapmode sensor
1437−------------------
1437+-------------------
14381438
14391439 sysfs: dytc_lapmode
14401440
Documentation/admin-guide/pm/intel_pstate.rst+5−3
@@ -123,7 +123,9 @@ Energy-Performance Bias (EPB) knob (otherwise), which means that the processor's · 122 unmodified lines
123123 internal P-state selection logic is expected to focus entirely on performance.
124124
125125 This will override the EPP/EPB setting coming from the ``sysfs`` interface
126−(see `Energy vs Performance Hints`_ below).
126+(see `Energy vs Performance Hints`_ below). Moreover, any attempts to change
127+the EPP/EPB to a value different from 0 ("performance") via ``sysfs`` in this
128+configuration will be rejected.
127129
128130 Also, in this configuration the range of P-states available to the processor's
129131 internal P-state selection logic is always restricted to the upper boundary
@@ -564,8 +566,8 @@ Energy-Performance Preference (EPP) knob (if supported) or its · 434 unmodified lines
564566 Energy-Performance Bias (EPB) knob. It is also possible to write a positive
565567 integer value between 0 to 255, if the EPP feature is present. If the EPP
566568 feature is not present, writing integer value to this attribute is not
567−supported. In this case, user can use
568− "/sys/devices/system/cpu/cpu*/power/energy_perf_bias" interface.
569+supported. In this case, user can use the
570+"/sys/devices/system/cpu/cpu*/power/energy_perf_bias" interface.
569571
570572 [Note that tasks may by migrated from one CPU to another by the scheduler's
571573 load-balancing algorithm and if different energy vs performance hints are
Documentation/bpf/index.rst+7−0
@@ -36,6 +36,12 @@ Two sets of Questions and Answers (Q&A) are maintained. · 35 unmodified lines
3636 bpf_devel_QA
3737
3838
39+Helper functions
40+================
41+
42+* `bpf-helpers(7)`_ maintains a list of helpers available to eBPF programs.
43+
44+
3945 Program types
4046 =============
4147
@@ -79,4 +85,5 @@ Other · 37 unmodified lines
7985 .. _networking-filter: ../networking/filter.rst
8086 .. _man-pages: https://www.kernel.org/doc/man-pages/
8187 .. _bpf(2): https://man7.org/linux/man-pages/man2/bpf.2.html
88+.. _bpf-helpers(7): https://man7.org/linux/man-pages/man7/bpf-helpers.7.html
8289 .. _BPF and XDP Reference Guide: https://docs.cilium.io/en/latest/bpf/
Documentation/devicetree/bindings/clock/imx23-clock.yaml+1−1
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml# · 6 unmodified lines
77 title: Clock bindings for Freescale i.MX23
88
99 maintainers:
10− - Shawn Guo <shawn.guo@linaro.org>
10+ - Shawn Guo <shawnguo@kernel.org>
1111
1212 description: |
1313 The clock consumer should specify the desired clock by having the clock
Documentation/devicetree/bindings/clock/imx28-clock.yaml+1−1
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml# · 6 unmodified lines
77 title: Clock bindings for Freescale i.MX28
88
99 maintainers:
10− - Shawn Guo <shawn.guo@linaro.org>
10+ - Shawn Guo <shawnguo@kernel.org>
1111
1212 description: |
1313 The clock consumer should specify the desired clock by having the clock
Documentation/devicetree/bindings/gpio/gpio-mxs.yaml+1−1
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml# · 6 unmodified lines
77 title: Freescale MXS GPIO controller
88
99 maintainers:
10− - Shawn Guo <shawn.guo@linaro.org>
10+ - Shawn Guo <shawnguo@kernel.org>
1111 - Anson Huang <Anson.Huang@nxp.com>
1212
1313 description: |
Documentation/devicetree/bindings/i2c/i2c-mxs.yaml+1−1
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml# · 6 unmodified lines
77 title: Freescale MXS Inter IC (I2C) Controller
88
99 maintainers:
10− - Shawn Guo <shawn.guo@linaro.org>
10+ - Shawn Guo <shawnguo@kernel.org>
1111
1212 properties:
1313 compatible:
Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.txt+0−66
@@ -1,66 +0,0 @@
1−Texas Instruments K3 Interrupt Aggregator
2−=========================================
3−
4−The Interrupt Aggregator (INTA) provides a centralized machine
5−which handles the termination of system events to that they can
6−be coherently processed by the host(s) in the system. A maximum
7−of 64 events can be mapped to a single interrupt.
8−
9−
10− Interrupt Aggregator
11− +-----------------------------------------+
12− | Intmap VINT |
13− | +--------------+ +------------+ |
14− m ------>| | vint | bit | | 0 |.....|63| vint0 |
15− . | +--------------+ +------------+ | +------+
16− . | . . | | HOST |
17−Globalevents ------>| . . |------>| IRQ |
18− . | . . | | CTRL |
19− . | . . | +------+
20− n ------>| +--------------+ +------------+ |
21− | | vint | bit | | 0 |.....|63| vintx |
22− | +--------------+ +------------+ |
23− | |
24− +-----------------------------------------+
25−
26−Configuration of these Intmap registers that maps global events to vint is done
27−by a system controller (like the Device Memory and Security Controller on K3
28−AM654 SoC). Driver should request the system controller to get the range
29−of global events and vints assigned to the requesting host. Management
30−of these requested resources should be handled by driver and requests
31−system controller to map specific global event to vint, bit pair.
32−
33−Communication between the host processor running an OS and the system
34−controller happens through a protocol called TI System Control Interface
35−(TISCI protocol). For more details refer:
36−Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
37−
38−TISCI Interrupt Aggregator Node:
39−-------------------------------
40−- compatible: Must be "ti,sci-inta".
41−- reg: Should contain registers location and length.
42−- interrupt-controller: Identifies the node as an interrupt controller
43−- msi-controller: Identifies the node as an MSI controller.
44−- interrupt-parent: phandle of irq parent.
45−- ti,sci: Phandle to TI-SCI compatible System controller node.
46−- ti,sci-dev-id: TISCI device ID of the Interrupt Aggregator.
47−- ti,sci-rm-range-vint: Array of TISCI subtype ids representing vints(inta
48− outputs) range within this INTA, assigned to the
49− requesting host context.
50−- ti,sci-rm-range-global-event: Array of TISCI subtype ids representing the
51− global events range reaching this IA and are assigned
52− to the requesting host context.
53−
54−Example:
55−--------
56−main_udmass_inta: interrupt-controller@33d00000 {
57− compatible = "ti,sci-inta";
58− reg = <0x0 0x33d00000 0x0 0x100000>;
59− interrupt-controller;
60− msi-controller;
61− interrupt-parent = <&main_navss_intr>;
62− ti,sci = <&dmsc>;
63− ti,sci-dev-id = <179>;
64− ti,sci-rm-range-vint = <0x0>;
65− ti,sci-rm-range-global-event = <0x1>;
66−};
Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml+98−0
@@ -0,0 +1,98 @@
1+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+%YAML 1.2
3+---
4+$id: http://devicetree.org/schemas/interrupt-controller/ti,sci-inta.yaml#
5+$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+title: Texas Instruments K3 Interrupt Aggregator
8+
9+maintainers:
10+ - Lokesh Vutla <lokeshvutla@ti.com>
11+
12+allOf:
13+ - $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
14+
15+description: |
16+ The Interrupt Aggregator (INTA) provides a centralized machine
17+ which handles the termination of system events to that they can
18+ be coherently processed by the host(s) in the system. A maximum
19+ of 64 events can be mapped to a single interrupt.
20+
21+ Interrupt Aggregator
22+ +-----------------------------------------+
23+ | Intmap VINT |
24+ | +--------------+ +------------+ |
25+ m ------>| | vint | bit | | 0 |.....|63| vint0 |
26+ . | +--------------+ +------------+ | +------+
27+ . | . . | | HOST |
28+ Globalevents ------>| . . |----->| IRQ |
29+ . | . . | | CTRL |
30+ . | . . | +------+
31+ n ------>| +--------------+ +------------+ |
32+ | | vint | bit | | 0 |.....|63| vintx |
33+ | +--------------+ +------------+ |
34+ | |
35+ +-----------------------------------------+
36+
37+ Configuration of these Intmap registers that maps global events to vint is
38+ done by a system controller (like the Device Memory and Security Controller
39+ on AM654 SoC). Driver should request the system controller to get the range
40+ of global events and vints assigned to the requesting host. Management
41+ of these requested resources should be handled by driver and requests
42+ system controller to map specific global event to vint, bit pair.
43+
44+ Communication between the host processor running an OS and the system
45+ controller happens through a protocol called TI System Control Interface
46+ (TISCI protocol).
47+
48+properties:
49+ compatible:
50+ const: ti,sci-inta
51+
52+ reg:
53+ maxItems: 1
54+
55+ interrupt-controller: true
56+
57+ msi-controller: true
58+
59+ ti,interrupt-ranges:
60+ $ref: /schemas/types.yaml#/definitions/uint32-matrix
61+ description: |
62+ Interrupt ranges that converts the INTA output hw irq numbers
63+ to parents's input interrupt numbers.
64+ items:
65+ items:
66+ - description: |
67+ "output_irq" specifies the base for inta output irq
68+ - description: |
69+ "parent's input irq" specifies the base for parent irq
70+ - description: |
71+ "limit" specifies the limit for translation
72+
73+required:
74+ - compatible
75+ - reg
76+ - interrupt-controller
77+ - msi-controller
78+ - ti,sci
79+ - ti,sci-dev-id
80+ - ti,interrupt-ranges
81+
82+examples:
83+ - |
84+ bus {
85+ #address-cells = <2>;
86+ #size-cells = <2>;
87+
88+ main_udmass_inta: msi-controller@33d00000 {
89+ compatible = "ti,sci-inta";
90+ reg = <0x0 0x33d00000 0x0 0x100000>;
91+ interrupt-controller;
92+ msi-controller;
93+ interrupt-parent = <&main_navss_intr>;
94+ ti,sci = <&dmsc>;
95+ ti,sci-dev-id = <179>;
96+ ti,interrupt-ranges = <0 0 256>;
97+ };
98+ };
Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt+0−82
@@ -1,82 +0,0 @@
1−Texas Instruments K3 Interrupt Router
2−=====================================
3−
4−The Interrupt Router (INTR) module provides a mechanism to mux M
5−interrupt inputs to N interrupt outputs, where all M inputs are selectable
6−to be driven per N output. An Interrupt Router can either handle edge triggered
7−or level triggered interrupts and that is fixed in hardware.
8−
9− Interrupt Router
10− +----------------------+
11− | Inputs Outputs |
12− +-------+ | +------+ +-----+ |
13− | GPIO |----------->| | irq0 | | 0 | | Host IRQ
14− +-------+ | +------+ +-----+ | controller
15− | . . | +-------+
16− +-------+ | . . |----->| IRQ |
17− | INTA |----------->| . . | +-------+
18− +-------+ | . +-----+ |
19− | +------+ | N | |
20− | | irqM | +-----+ |
21− | +------+ |
22− | |
23− +----------------------+
24−
25−There is one register per output (MUXCNTL_N) that controls the selection.
26−Configuration of these MUXCNTL_N registers is done by a system controller
27−(like the Device Memory and Security Controller on K3 AM654 SoC). System
28−controller will keep track of the used and unused registers within the Router.
29−Driver should request the system controller to get the range of GIC IRQs
30−assigned to the requesting hosts. It is the drivers responsibility to keep
31−track of Host IRQs.
32−
33−Communication between the host processor running an OS and the system
34−controller happens through a protocol called TI System Control Interface
35−(TISCI protocol). For more details refer:
36−Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
37−
38−TISCI Interrupt Router Node:
39−----------------------------
40−Required Properties:
41−- compatible: Must be "ti,sci-intr".
42−- ti,intr-trigger-type: Should be one of the following:
43− 1: If intr supports edge triggered interrupts.
44− 4: If intr supports level triggered interrupts.
45−- interrupt-controller: Identifies the node as an interrupt controller
46−- #interrupt-cells: Specifies the number of cells needed to encode an
47− interrupt source. The value should be 2.
48− First cell should contain the TISCI device ID of source
49− Second cell should contain the interrupt source offset
50− within the device.
51−- ti,sci: Phandle to TI-SCI compatible System controller node.
52−- ti,sci-dst-id: TISCI device ID of the destination IRQ controller.
53−- ti,sci-rm-range-girq: Array of TISCI subtype ids representing the host irqs
54− assigned to this interrupt router. Each subtype id
55− corresponds to a range of host irqs.
56−
57−For more details on TISCI IRQ resource management refer:
58−https://downloads.ti.com/tisci/esd/latest/2_tisci_msgs/rm/rm_irq.html
59−
60−Example:
61−--------
62−The following example demonstrates both interrupt router node and the consumer
63−node(main gpio) on the AM654 SoC:
64−
65−main_intr: interrupt-controller0 {
66− compatible = "ti,sci-intr";
67− ti,intr-trigger-type = <1>;
68− interrupt-controller;
69− interrupt-parent = <&gic500>;
70− #interrupt-cells = <2>;
71− ti,sci = <&dmsc>;
72− ti,sci-dst-id = <56>;
73− ti,sci-rm-range-girq = <0x1>;
74−};
75−
76−main_gpio0: gpio@600000 {
77− ...
78− interrupt-parent = <&main_intr>;
79− interrupts = <57 256>, <57 257>, <57 258>,
80− <57 259>, <57 260>, <57 261>;
81− ...
82−};
Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml+102−0
@@ -0,0 +1,102 @@
1+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+%YAML 1.2
3+---
4+$id: http://devicetree.org/schemas/interrupt-controller/ti,sci-intr.yaml#
5+$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+title: Texas Instruments K3 Interrupt Router
8+
9+maintainers:
10+ - Lokesh Vutla <lokeshvutla@ti.com>
11+
12+allOf:
13+ - $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
14+
15+description: |
16+ The Interrupt Router (INTR) module provides a mechanism to mux M
17+ interrupt inputs to N interrupt outputs, where all M inputs are selectable
18+ to be driven per N output. An Interrupt Router can either handle edge
19+ triggered or level triggered interrupts and that is fixed in hardware.
20+
21+ Interrupt Router
22+ +----------------------+
23+ | Inputs Outputs |
24+ +-------+ | +------+ +-----+ |
25+ | GPIO |----------->| | irq0 | | 0 | | Host IRQ
26+ +-------+ | +------+ +-----+ | controller
27+ | . . | +-------+
28+ +-------+ | . . |----->| IRQ |
29+ | INTA |----------->| . . | +-------+
30+ +-------+ | . +-----+ |
31+ | +------+ | N | |
32+ | | irqM | +-----+ |
33+ | +------+ |
34+ | |
35+ +----------------------+
36+
37+ There is one register per output (MUXCNTL_N) that controls the selection.
38+ Configuration of these MUXCNTL_N registers is done by a system controller
39+ (like the Device Memory and Security Controller on K3 AM654 SoC). System
40+ controller will keep track of the used and unused registers within the Router.
41+ Driver should request the system controller to get the range of GIC IRQs
42+ assigned to the requesting hosts. It is the drivers responsibility to keep
43+ track of Host IRQs.
44+
45+ Communication between the host processor running an OS and the system
46+ controller happens through a protocol called TI System Control Interface
47+ (TISCI protocol).
48+
49+properties:
50+ compatible:
51+ const: ti,sci-intr
52+
53+ ti,intr-trigger-type:
54+ $ref: /schemas/types.yaml#/definitions/uint32
55+ enum: [1, 4]
56+ description: |
57+ Should be one of the following.
58+ 1 = If intr supports edge triggered interrupts.
59+ 4 = If intr supports level triggered interrupts.
60+
61+ interrupt-controller: true
62+
63+ '#interrupt-cells':
64+ const: 1
65+ description: |
66+ The 1st cell should contain interrupt router input hw number.
67+
68+ ti,interrupt-ranges:
69+ $ref: /schemas/types.yaml#/definitions/uint32-matrix
70+ description: |
71+ Interrupt ranges that converts the INTR output hw irq numbers
72+ to parents's input interrupt numbers.
73+ items:
74+ items:
75+ - description: |
76+ "output_irq" specifies the base for intr output irq
77+ - description: |
78+ "parent's input irq" specifies the base for parent irq
79+ - description: |
80+ "limit" specifies the limit for translation
81+
82+required:
83+ - compatible
84+ - ti,intr-trigger-type
85+ - interrupt-controller
86+ - '#interrupt-cells'
87+ - ti,sci
88+ - ti,sci-dev-id
89+ - ti,interrupt-ranges
90+
91+examples:
92+ - |
93+ main_gpio_intr: interrupt-controller0 {
94+ compatible = "ti,sci-intr";
95+ ti,intr-trigger-type = <1>;
96+ interrupt-controller;
97+ interrupt-parent = <&gic500>;
98+ #interrupt-cells = <1>;
99+ ti,sci = <&dmsc>;
100+ ti,sci-dev-id = <131>;
101+ ti,interrupt-ranges = <0 360 32>;
102+ };
Documentation/devicetree/bindings/mmc/arasan,sdhci.yaml+7−3
@@ -30,9 +30,13 @@ allOf: · 29 unmodified lines
3030 then:
3131 properties:
3232 clock-output-names:
33− items:
34− - const: clk_out_sd0
35− - const: clk_in_sd0
33+ oneOf:
34+ - items:
35+ - const: clk_out_sd0
36+ - const: clk_in_sd0
37+ - items:
38+ - const: clk_out_sd1
39+ - const: clk_in_sd1
3640
3741 properties:
3842 compatible:
Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml+1−1
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml# · 6 unmodified lines
77 title: Freescale Enhanced Secure Digital Host Controller (eSDHC) for i.MX
88
99 maintainers:
10− - Shawn Guo <shawn.guo@linaro.org>
10+ - Shawn Guo <shawnguo@kernel.org>
1111
1212 allOf:
1313 - $ref: "mmc-controller.yaml"
Documentation/devicetree/bindings/mmc/mtk-sd.txt+2−0
@@ -50,6 +50,8 @@ Optional properties: · 49 unmodified lines
5050 error caused by stop clock(fifo full)
5151 Valid range = [0:0x7]. if not present, default value is 0.
5252 applied to compatible "mediatek,mt2701-mmc".
53+- resets: Phandle and reset specifier pair to softreset line of MSDC IP.
54+- reset-names: Should be "hrst".
5355
5456 Examples:
5557 mmc0: mmc@11230000 {
Documentation/devicetree/bindings/mmc/mxs-mmc.yaml+1−1
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml# · 6 unmodified lines
77 title: Freescale MXS MMC controller
88
99 maintainers:
10− - Shawn Guo <shawn.guo@linaro.org>
10+ - Shawn Guo <shawnguo@kernel.org>
1111
1212 description: |
1313 The Freescale MXS Synchronous Serial Ports (SSP) can act as a MMC controller
Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt+29−3
@@ -15,8 +15,15 @@ Required properties: · 14 unmodified lines
1515 - "nvidia,tegra210-sdhci": for Tegra210
1616 - "nvidia,tegra186-sdhci": for Tegra186
1717 - "nvidia,tegra194-sdhci": for Tegra194
18−- clocks : Must contain one entry, for the module clock.
19− See ../clocks/clock-bindings.txt for details.
18+- clocks: For Tegra210, Tegra186 and Tegra194 must contain two entries.
19+ One for the module clock and one for the timeout clock.
20+ For all other Tegra devices, must contain a single entry for
21+ the module clock. See ../clocks/clock-bindings.txt for details.
22+- clock-names: For Tegra210, Tegra186 and Tegra194 must contain the
23+ strings 'sdhci' and 'tmclk' to represent the module and
24+ the timeout clocks, respectively.
25+ For all other Tegra devices must contain the string 'sdhci'
26+ to represent the module clock.
2027 - resets : Must contain an entry for each entry in reset-names.
2128 See ../reset/reset.txt for details.
2229 - reset-names : Must include the following entries:
@@ -99,7 +106,7 @@ Optional properties for Tegra210, Tegra186 and Tegra194: · 76 unmodified lines
99106
100107 Example:
101108 sdhci@700b0000 {
102− compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci";
109+ compatible = "nvidia,tegra124-sdhci";
103110 reg = <0x0 0x700b0000 0x0 0x200>;
104111 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
105112 clocks = <&tegra_car TEGRA210_CLK_SDMMC1>;
@@ -115,3 +122,22 @@ sdhci@700b0000 { · 9 unmodified lines
115122 nvidia,pad-autocal-pull-down-offset-1v8 = <0x7b>;
116123 status = "disabled";
117124 };
125+
126+sdhci@700b0000 {
127+ compatible = "nvidia,tegra210-sdhci";
128+ reg = <0x0 0x700b0000 0x0 0x200>;
129+ interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
130+ clocks = <&tegra_car TEGRA210_CLK_SDMMC1>,
131+ <&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
132+ clock-names = "sdhci", "tmclk";
133+ resets = <&tegra_car 14>;
134+ reset-names = "sdhci";
135+ pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
136+ pinctrl-0 = <&sdmmc1_3v3>;
137+ pinctrl-1 = <&sdmmc1_1v8>;
138+ nvidia,pad-autocal-pull-up-offset-3v3 = <0x00>;
139+ nvidia,pad-autocal-pull-down-offset-3v3 = <0x7d>;
140+ nvidia,pad-autocal-pull-up-offset-1v8 = <0x7b>;
141+ nvidia,pad-autocal-pull-down-offset-1v8 = <0x7b>;
142+ status = "disabled";
143+};
Documentation/devicetree/bindings/net/dsa/dsa.txt+1−1
@@ -1,4 +1,4 @@
11 Distributed Switch Architecture Device Tree Bindings
22 ----------------------------------------------------
33
4−See Documentation/devicetree/bindings/net/dsa/dsa.yaml for the documenation.
4+See Documentation/devicetree/bindings/net/dsa/dsa.yaml for the documentation.
Documentation/devicetree/bindings/net/ethernet-controller.yaml+2−1
@@ -54,7 +54,8 @@ properties: · 53 unmodified lines
5454
5555 phy-connection-type:
5656 description:
57− Operation mode of the PHY interface
57+ Specifies interface type between the Ethernet device and a physical
58+ layer (PHY) device.
5859 enum:
5960 # There is not a standard bus between the MAC and the PHY,
6061 # something proprietary is being used to embed the PHY in the
Documentation/devicetree/bindings/net/renesas,ether.yaml+15−7
@@ -59,9 +59,15 @@ properties: · 58 unmodified lines
5959 clocks:
6060 maxItems: 1
6161
62− pinctrl-0: true
62+ power-domains:
63+ maxItems: 1
64+
65+ resets:
66+ maxItems: 1
6367
64− pinctrl-names: true
68+ phy-mode: true
69+
70+ phy-handle: true
6571
6672 renesas,no-ether-link:
6773 type: boolean
@@ -74,6 +80,11 @@ properties: · 6 unmodified lines
7480 specify when the Ether LINK signal is active-low instead of normal
7581 active-high
7682
83+patternProperties:
84+ "^ethernet-phy@[0-9a-f]$":
85+ type: object
86+ $ref: ethernet-phy.yaml#
87+
7788 required:
7889 - compatible
7990 - reg
@@ -83,7 +94,8 @@ required: · 3 unmodified lines
8394 - '#address-cells'
8495 - '#size-cells'
8596 - clocks
86− - pinctrl-0
97+
98+additionalProperties: false
8799
88100 examples:
89101 # Lager board
@@ -99,8 +111,6 @@ examples: · 9 unmodified lines
99111 clocks = <&mstp8_clks R8A7790_CLK_ETHER>;
100112 phy-mode = "rmii";
101113 phy-handle = <&phy1>;
102− pinctrl-0 = <&ether_pins>;
103− pinctrl-names = "default";
104114 renesas,ether-link-active-low;
105115 #address-cells = <1>;
106116 #size-cells = <0>;
@@ -109,7 +119,5 @@ examples: · 2 unmodified lines
109119 reg = <1>;
110120 interrupt-parent = <&irqc0>;
111121 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
112− pinctrl-0 = <&phy1_pins>;
113− pinctrl-names = "default";
114122 };
115123 };
Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml+8−0
@@ -9,6 +9,14 @@ title: PCIe RC controller on Intel Gateway SoCs · 8 unmodified lines
99 maintainers:
1010 - Dilip Kota <eswara.kota@linux.intel.com>
1111
12+select:
13+ properties:
14+ compatible:
15+ contains:
16+ const: intel,lgm-pcie
17+ required:
18+ - compatible
19+
1220 properties:
1321 compatible:
1422 items:
Documentation/devicetree/bindings/pwm/mxs-pwm.yaml+1−1
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml# · 6 unmodified lines
77 title: Freescale MXS PWM controller
88
99 maintainers:
10− - Shawn Guo <shawn.guo@linaro.org>
10+ - Shawn Guo <shawnguo@kernel.org>
1111 - Anson Huang <anson.huang@nxp.com>
1212
1313 properties:
Documentation/devicetree/bindings/spi/fsl-imx-cspi.yaml+1−1
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml# · 6 unmodified lines
77 title: Freescale (Enhanced) Configurable Serial Peripheral Interface (CSPI/eCSPI) for i.MX
88
99 maintainers:
10− - Shawn Guo <shawn.guo@linaro.org>
10+ - Shawn Guo <shawnguo@kernel.org>
1111
1212 allOf:
1313 - $ref: "/schemas/spi/spi-controller.yaml#"
Documentation/devicetree/bindings/spi/spi-fsl-lpspi.yaml+1−0
@@ -39,6 +39,7 @@ properties: · 38 unmodified lines
3939 spi common code does not support use of CS signals discontinuously.
4040 i.MX8DXL-EVK board only uses CS1 without using CS0. Therefore, add
4141 this property to re-config the chipselect value in the LPSPI driver.
42+ type: boolean
4243
4344 required:
4445 - compatible
Documentation/devicetree/bindings/thermal/imx-thermal.yaml+1−1
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml# · 6 unmodified lines
77 title: NXP i.MX Thermal Binding
88
99 maintainers:
10− - Shawn Guo <shawn.guo@linaro.org>
10+ - Shawn Guo <shawnguo@kernel.org>
1111 - Anson Huang <Anson.Huang@nxp.com>
1212
1313 properties:
Documentation/devicetree/bindings/timer/sifive,clint.yaml+60−0
@@ -0,0 +1,60 @@
1+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+%YAML 1.2
3+---
4+$id: http://devicetree.org/schemas/timer/sifive,clint.yaml#
5+$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+title: SiFive Core Local Interruptor
8+
9+maintainers:
10+ - Palmer Dabbelt <palmer@dabbelt.com>
11+ - Anup Patel <anup.patel@wdc.com>
12+
13+description:
14+ SiFive (and other RISC-V) SOCs include an implementation of the SiFive
15+ Core Local Interruptor (CLINT) for M-mode timer and M-mode inter-processor
16+ interrupts. It directly connects to the timer and inter-processor interrupt
17+ lines of various HARTs (or CPUs) so RISC-V per-HART (or per-CPU) local
18+ interrupt controller is the parent interrupt controller for CLINT device.
19+ The clock frequency of CLINT is specified via "timebase-frequency" DT
20+ property of "/cpus" DT node. The "timebase-frequency" DT property is
21+ described in Documentation/devicetree/bindings/riscv/cpus.yaml
22+
23+properties:
24+ compatible:
25+ items:
26+ - const: sifive,fu540-c000-clint
27+ - const: sifive,clint0
28+
29+ description:
30+ Should be "sifive,<chip>-clint" and "sifive,clint<version>".
31+ Supported compatible strings are -
32+ "sifive,fu540-c000-clint" for the SiFive CLINT v0 as integrated
33+ onto the SiFive FU540 chip, and "sifive,clint0" for the SiFive
34+ CLINT v0 IP block with no chip integration tweaks.
35+ Please refer to sifive-blocks-ip-versioning.txt for details
36+
37+ reg:
38+ maxItems: 1
39+
40+ interrupts-extended:
41+ minItems: 1
42+
43+additionalProperties: false
44+
45+required:
46+ - compatible
47+ - reg
48+ - interrupts-extended
49+
50+examples:
51+ - |
52+ timer@2000000 {
53+ compatible = "sifive,fu540-c000-clint", "sifive,clint0";
54+ interrupts-extended = <&cpu1intc 3 &cpu1intc 7
55+ &cpu2intc 3 &cpu2intc 7
56+ &cpu3intc 3 &cpu3intc 7
57+ &cpu4intc 3 &cpu4intc 7>;
58+ reg = <0x2000000 0x10000>;
59+ };
60+...
Documentation/devicetree/bindings/vendor-prefixes.yaml+1−1
@@ -993,7 +993,7 @@ patternProperties: · 992 unmodified lines
993993 "^sst,.*":
994994 description: Silicon Storage Technology, Inc.
995995 "^sstar,.*":
996− description: Xiamen Xingchen(SigmaStar) Technology Co., Ltd.
996+ description: Xiamen Xingchen(SigmaStar) Technology Co., Ltd.
997997 (formerly part of MStar Semiconductor, Inc.)
998998 "^st,.*":
999999 description: STMicroelectronics
Documentation/devicetree/writing-schema.rst+2−2
@@ -5,7 +5,7 @@ Writing DeviceTree Bindings in json-schema · 4 unmodified lines
55
66 Devicetree bindings are written using json-schema vocabulary. Schema files are
77 written in a JSON compatible subset of YAML. YAML is used instead of JSON as it
8−considered more human readable and has some advantages such as allowing
8+is considered more human readable and has some advantages such as allowing
99 comments (Prefixed with '#').
1010
1111 Schema Contents
@@ -19,7 +19,7 @@ $id · 7 unmodified lines
1919 A json-schema unique identifier string. The string must be a valid
2020 URI typically containing the binding's filename and path. For DT schema, it must
2121 begin with "http://devicetree.org/schemas/". The URL is used in constructing
22− references to other files specified in schema "$ref" properties. A $ref values
22+ references to other files specified in schema "$ref" properties. A $ref value
2323 with a leading '/' will have the hostname prepended. A $ref value a relative
2424 path or filename only will be prepended with the hostname and path components
2525 of the current schema file's '$id' value. A URL is used even for local files,
Documentation/driver-api/fpga/fpga-bridge.rst+3−3
@@ -6,9 +6,9 @@ API to implement a new FPGA bridge · 5 unmodified lines
66
77 * struct :c:type:`fpga_bridge` — The FPGA Bridge structure
88 * struct :c:type:`fpga_bridge_ops` — Low level Bridge driver ops
9−* :c:func:`devm_fpga_bridge_create()` — Allocate and init a bridge struct
10−* :c:func:`fpga_bridge_register()` — Register a bridge
11−* :c:func:`fpga_bridge_unregister()` — Unregister a bridge
9+* devm_fpga_bridge_create() — Allocate and init a bridge struct
10+* fpga_bridge_register() — Register a bridge
11+* fpga_bridge_unregister() — Unregister a bridge
1212
1313 .. kernel-doc:: include/linux/fpga/fpga-bridge.h
1414 :functions: fpga_bridge
Documentation/driver-api/fpga/fpga-mgr.rst+3−3
@@ -104,9 +104,9 @@ API for implementing a new FPGA Manager driver · 103 unmodified lines
104104 * ``fpga_mgr_states`` — Values for :c:member:`fpga_manager->state`.
105105 * struct :c:type:`fpga_manager` — the FPGA manager struct
106106 * struct :c:type:`fpga_manager_ops` — Low level FPGA manager driver ops
107−* :c:func:`devm_fpga_mgr_create` — Allocate and init a manager struct
108−* :c:func:`fpga_mgr_register` — Register an FPGA manager
109−* :c:func:`fpga_mgr_unregister` — Unregister an FPGA manager
107+* devm_fpga_mgr_create() — Allocate and init a manager struct
108+* fpga_mgr_register() — Register an FPGA manager
109+* fpga_mgr_unregister() — Unregister an FPGA manager
110110
111111 .. kernel-doc:: include/linux/fpga/fpga-mgr.h
112112 :functions: fpga_mgr_states
Documentation/driver-api/fpga/fpga-programming.rst+8−8
@@ -6,9 +6,9 @@ Overview · 5 unmodified lines
66
77 The in-kernel API for FPGA programming is a combination of APIs from
88 FPGA manager, bridge, and regions. The actual function used to
9−trigger FPGA programming is :c:func:`fpga_region_program_fpga()`.
9+trigger FPGA programming is fpga_region_program_fpga().
1010
11−:c:func:`fpga_region_program_fpga()` uses functionality supplied by
11+fpga_region_program_fpga() uses functionality supplied by
1212 the FPGA manager and bridges. It will:
1313
1414 * lock the region's mutex
@@ -20,8 +20,8 @@ the FPGA manager and bridges. It will: · 5 unmodified lines
2020 * release the locks
2121
2222 The struct fpga_image_info specifies what FPGA image to program. It is
23−allocated/freed by :c:func:`fpga_image_info_alloc()` and freed with
24−:c:func:`fpga_image_info_free()`
23+allocated/freed by fpga_image_info_alloc() and freed with
24+fpga_image_info_free()
2525
2626 How to program an FPGA using a region
2727 -------------------------------------
@@ -84,10 +84,10 @@ will generate that list. Here's some sample code of what to do next:: · 56 unmodified lines
8484 API for programming an FPGA
8585 ---------------------------
8686
87−* :c:func:`fpga_region_program_fpga` — Program an FPGA
88−* :c:type:`fpga_image_info` — Specifies what FPGA image to program
89−* :c:func:`fpga_image_info_alloc()` — Allocate an FPGA image info struct
90−* :c:func:`fpga_image_info_free()` — Free an FPGA image info struct
87+* fpga_region_program_fpga() — Program an FPGA
88+* fpga_image_info() — Specifies what FPGA image to program
89+* fpga_image_info_alloc() — Allocate an FPGA image info struct
90+* fpga_image_info_free() — Free an FPGA image info struct
9191
9292 .. kernel-doc:: drivers/fpga/fpga-region.c
9393 :functions: fpga_region_program_fpga
Documentation/driver-api/fpga/fpga-region.rst+9−9
@@ -46,18 +46,18 @@ API to add a new FPGA region · 45 unmodified lines
4646 ----------------------------
4747
4848 * struct :c:type:`fpga_region` — The FPGA region struct
49−* :c:func:`devm_fpga_region_create` — Allocate and init a region struct
50−* :c:func:`fpga_region_register` — Register an FPGA region
51−* :c:func:`fpga_region_unregister` — Unregister an FPGA region
49+* devm_fpga_region_create() — Allocate and init a region struct
50+* fpga_region_register() — Register an FPGA region
51+* fpga_region_unregister() — Unregister an FPGA region
5252
5353 The FPGA region's probe function will need to get a reference to the FPGA
5454 Manager it will be using to do the programming. This usually would happen
5555 during the region's probe function.
5656
57−* :c:func:`fpga_mgr_get` — Get a reference to an FPGA manager, raise ref count
58−* :c:func:`of_fpga_mgr_get` — Get a reference to an FPGA manager, raise ref count,
57+* fpga_mgr_get() — Get a reference to an FPGA manager, raise ref count
58+* of_fpga_mgr_get() — Get a reference to an FPGA manager, raise ref count,
5959 given a device node.
60−* :c:func:`fpga_mgr_put` — Put an FPGA manager
60+* fpga_mgr_put() — Put an FPGA manager
6161
6262 The FPGA region will need to specify which bridges to control while programming
6363 the FPGA. The region driver can build a list of bridges during probe time
@@ -66,11 +66,11 @@ the list of bridges to program just before programming · 2 unmodified lines
6666 (:c:member:`fpga_region->get_bridges`). The FPGA bridge framework supplies the
6767 following APIs to handle building or tearing down that list.
6868
69−* :c:func:`fpga_bridge_get_to_list` — Get a ref of an FPGA bridge, add it to a
69+* fpga_bridge_get_to_list() — Get a ref of an FPGA bridge, add it to a
7070 list
71−* :c:func:`of_fpga_bridge_get_to_list` — Get a ref of an FPGA bridge, add it to a
71+* of_fpga_bridge_get_to_list() — Get a ref of an FPGA bridge, add it to a
7272 list, given a device node
73−* :c:func:`fpga_bridges_put` — Given a list of bridges, put them
73+* fpga_bridges_put() — Given a list of bridges, put them
7474
7575 .. kernel-doc:: include/linux/fpga/fpga-region.h
7676 :functions: fpga_region
Documentation/driver-api/iio/core.rst+8−8
@@ -11,10 +11,10 @@ Industrial I/O Devices · 10 unmodified lines
1111 ----------------------
1212
1313 * struct :c:type:`iio_dev` - industrial I/O device
14−* :c:func:`iio_device_alloc()` - allocate an :c:type:`iio_dev` from a driver
15−* :c:func:`iio_device_free()` - free an :c:type:`iio_dev` from a driver
16−* :c:func:`iio_device_register()` - register a device with the IIO subsystem
17−* :c:func:`iio_device_unregister()` - unregister a device from the IIO
14+* iio_device_alloc() - allocate an :c:type:`iio_dev` from a driver
15+* iio_device_free() - free an :c:type:`iio_dev` from a driver
16+* iio_device_register() - register a device with the IIO subsystem
17+* iio_device_unregister() - unregister a device from the IIO
1818 subsystem
1919
2020 An IIO device usually corresponds to a single hardware sensor and it
@@ -34,17 +34,17 @@ A typical IIO driver will register itself as an :doc:`I2C <../i2c>` or · 13 unmodified lines
3434
3535 At probe:
3636
37−1. Call :c:func:`iio_device_alloc()`, which allocates memory for an IIO device.
37+1. Call iio_device_alloc(), which allocates memory for an IIO device.
3838 2. Initialize IIO device fields with driver specific information (e.g.
3939 device name, device channels).
40−3. Call :c:func:`iio_device_register()`, this registers the device with the
40+3. Call iio_device_register(), this registers the device with the
4141 IIO core. After this call the device is ready to accept requests from user
4242 space applications.
4343
4444 At remove, we free the resources allocated in probe in reverse order:
4545
46−1. :c:func:`iio_device_unregister()`, unregister the device from the IIO core.
47−2. :c:func:`iio_device_free()`, free the memory allocated for the IIO device.
46+1. iio_device_unregister(), unregister the device from the IIO core.
47+2. iio_device_free(), free the memory allocated for the IIO device.
4848
4949 IIO device sysfs interface
5050 ==========================
Documentation/fault-injection/nvme-fault-injection.rst+1−1
@@ -3,7 +3,7 @@ NVMe Fault Injection · 2 unmodified lines
33 Linux's fault injection framework provides a systematic way to support
44 error injection via debugfs in the /sys/kernel/debug directory. When
55 enabled, the default NVME_SC_INVALID_OPCODE with no retry will be
6−injected into the nvme_end_request. Users can change the default status
6+injected into the nvme_try_complete_req. Users can change the default status
77 code and no retry flag via the debugfs. The list of Generic Command
88 Status can be found in include/linux/nvme.h
99
Documentation/filesystems/affs.rst+10−6
@@ -110,13 +110,15 @@ The Amiga protection flags RWEDRWEDHSPARWED are handled as follows: · 109 unmodified lines
110110
111111 - R maps to r for user, group and others. On directories, R implies x.
112112
113− - If both W and D are allowed, w will be set.
113+ - W maps to w.
114114
115115 - E maps to x.
116116
117− - H and P are always retained and ignored under Linux.
117+ - D is ignored.
118118
119− - A is always reset when a file is written to.
119+ - H, S and P are always retained and ignored under Linux.
120+
121+ - A is cleared when a file is written to.
120122
121123 User id and group id will be used unless set[gu]id are given as mount
122124 options. Since most of the Amiga file systems are single user systems
@@ -128,11 +130,13 @@ Linux -> Amiga: · 5 unmodified lines
128130
129131 The Linux rwxrwxrwx file mode is handled as follows:
130132
131− - r permission will set R for user, group and others.
133+ - r permission will allow R for user, group and others.
134+
135+ - w permission will allow W for user, group and others.
132136
133− - w permission will set W and D for user, group and others.
137+ - x permission of the user will allow E for plain files.
134138
135− - x permission of the user will set E for plain files.
139+ - D will be allowed for user, group and others.
136140
137141 - All other flags (suid, sgid, ...) are ignored and will
138142 not be retained.
Documentation/filesystems/ext4/about.rst+1−1
@@ -39,6 +39,6 @@ entry. · 38 unmodified lines
3939 Other References
4040 ----------------
4141
42−Also see http://www.nongnu.org/ext2-doc/ for quite a collection of
42+Also see https://www.nongnu.org/ext2-doc/ for quite a collection of
4343 information about ext2/3. Here's another old reference:
4444 http://wiki.osdev.org/Ext2
Documentation/hwmon/abituguru-datasheet.rst+3−3
@@ -68,7 +68,7 @@ See below for all known bank addresses, numbers of sensors in that bank, · 67 unmodified lines
6868 number of bytes data per sensor and contents/meaning of those bytes.
6969
7070 Although both this document and the kernel driver have kept the sensor
71−terminoligy for the addressing within a bank this is not 100% correct, in
71+terminology for the addressing within a bank this is not 100% correct, in
7272 bank 0x24 for example the addressing within the bank selects a PWM output not
7373 a sensor.
7474
@@ -155,7 +155,7 @@ After wider testing of the Linux kernel driver some variants of the uGuru have · 80 unmodified lines
155155 turned up which do not hold 0x08 at DATA within 250 reads after writing the
156156 bank address. With these versions this happens quite frequent, using larger
157157 timeouts doesn't help, they just go offline for a second or 2, doing some
158−internal callibration or whatever. Your code should be prepared to handle
158+internal calibration or whatever. Your code should be prepared to handle
159159 this and in case of no response in this specific case just goto sleep for a
160160 while and then retry.
161161
@@ -331,6 +331,6 @@ the voltage / clock programming out, I tried reading and only reading banks · 169 unmodified lines
331331 0-0x30 with the reading code used for the sensor banks (0x20-0x28) and this
332332 resulted in a _permanent_ reprogramming of the voltages, luckily I had the
333333 sensors part configured so that it would shutdown my system on any out of spec
334−voltages which proprably safed my computer (after a reboot I managed to
334+voltages which probably safed my computer (after a reboot I managed to
335335 immediately enter the bios and reload the defaults). This probably means that
336336 the read/write cycle for the non sensor part is different from the sensor part.
Documentation/hwmon/abituguru.rst+2−2
@@ -17,7 +17,7 @@ Supported chips: · 16 unmodified lines
1717 Note:
1818 The uGuru is a microcontroller with onboard firmware which programs
1919 it to behave as a hwmon IC. There are many different revisions of the
20− firmware and thus effectivly many different revisions of the uGuru.
20+ firmware and thus effectively many different revisions of the uGuru.
2121 Below is an incomplete list with which revisions are used for which
2222 Motherboards:
2323
@@ -33,7 +33,7 @@ Supported chips: · 9 unmodified lines
3333 sensortype (Volt or Temp) for bank1 sensors, for revision 1 uGuru's
3434 this does not always work. For these uGuru's the autodetection can
3535 be overridden with the bank1_types module param. For all 3 known
36− revison 1 motherboards the correct use of this param is:
36+ revision 1 motherboards the correct use of this param is:
3737 bank1_types=1,1,0,0,0,0,0,2,0,0,0,0,2,0,0,1
3838 You may also need to specify the fan_sensors option for these boards
3939 fan_sensors=5
Documentation/hwmon/abituguru3.rst+2−2
@@ -13,7 +13,7 @@ Supported chips: · 12 unmodified lines
1313 Note:
1414 The uGuru is a microcontroller with onboard firmware which programs
1515 it to behave as a hwmon IC. There are many different revisions of the
16− firmware and thus effectivly many different revisions of the uGuru.
16+ firmware and thus effectively many different revisions of the uGuru.
1717 Below is an incomplete list with which revisions are used for which
1818 Motherboards:
1919
@@ -24,7 +24,7 @@ Supported chips: · 4 unmodified lines
2424 - uGuru 3.0.0.0 ~ 3.0.x.x (AW8, AL8, AT8, NI8 SLI, AT8 32X, AN8 32X,
2525 AW9D-MAX)
2626
27− The abituguru3 driver is only for revison 3.0.x.x motherboards,
27+ The abituguru3 driver is only for revision 3.0.x.x motherboards,
2828 this driver will not work on older motherboards. For older
2929 motherboards use the abituguru (without the 3 !) driver.
3030
Documentation/kbuild/llvm.rst+13−13
@@ -23,8 +23,8 @@ supports C and the GNU C extensions required by the kernel, and is pronounced · 22 unmodified lines
2323 Clang
2424 -----
2525
26−The compiler used can be swapped out via `CC=` command line argument to `make`.
27−`CC=` should be set when selecting a config and during a build.
26+The compiler used can be swapped out via ``CC=`` command line argument to ``make``.
27+``CC=`` should be set when selecting a config and during a build. ::
2828
2929 make CC=clang defconfig
3030
@@ -34,33 +34,33 @@ Cross Compiling · 3 unmodified lines
3434 ---------------
3535
3636 A single Clang compiler binary will typically contain all supported backends,
37−which can help simplify cross compiling.
37+which can help simplify cross compiling. ::
3838
3939 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make CC=clang
4040
41−`CROSS_COMPILE` is not used to prefix the Clang compiler binary, instead
42−`CROSS_COMPILE` is used to set a command line flag: `--target <triple>`. For
43−example:
41+``CROSS_COMPILE`` is not used to prefix the Clang compiler binary, instead
42+``CROSS_COMPILE`` is used to set a command line flag: ``--target <triple>``. For
43+example: ::
4444
4545 clang --target aarch64-linux-gnu foo.c
4646
4747 LLVM Utilities
4848 --------------
4949
50−LLVM has substitutes for GNU binutils utilities. Kbuild supports `LLVM=1`
51−to enable them.
50+LLVM has substitutes for GNU binutils utilities. Kbuild supports ``LLVM=1``
51+to enable them. ::
5252
5353 make LLVM=1
5454
55−They can be enabled individually. The full list of the parameters:
55+They can be enabled individually. The full list of the parameters: ::
5656
57− make CC=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip \\
58− OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump OBJSIZE=llvm-size \\
59− READELF=llvm-readelf HOSTCC=clang HOSTCXX=clang++ HOSTAR=llvm-ar \\
57+ make CC=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip \
58+ OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump OBJSIZE=llvm-size \
59+ READELF=llvm-readelf HOSTCC=clang HOSTCXX=clang++ HOSTAR=llvm-ar \
6060 HOSTLD=ld.lld
6161
6262 Currently, the integrated assembler is disabled by default. You can pass
63−`LLVM_IAS=1` to enable it.
63+``LLVM_IAS=1`` to enable it.
6464
6565 Getting Help
6666 ------------
Documentation/kbuild/makefiles.rst+9−9
@@ -16,7 +16,7 @@ This document describes the Linux kernel Makefiles. · 15 unmodified lines
1616 --- 3.5 Library file goals - lib-y
1717 --- 3.6 Descending down in directories
1818 --- 3.7 Compilation flags
19− --- 3.8 Command line dependency
19+ --- 3.8 <deleted>
2020 --- 3.9 Dependency tracking
2121 --- 3.10 Special Rules
2222 --- 3.11 $(CC) support functions
@@ -39,8 +39,8 @@ This document describes the Linux kernel Makefiles. · 16 unmodified lines
3939
4040 === 7 Architecture Makefiles
4141 --- 7.1 Set variables to tweak the build to the architecture
42− --- 7.2 Add prerequisites to archheaders:
43− --- 7.3 Add prerequisites to archprepare:
42+ --- 7.2 Add prerequisites to archheaders
43+ --- 7.3 Add prerequisites to archprepare
4444 --- 7.4 List directories to visit when descending
4545 --- 7.5 Architecture-specific boot images
4646 --- 7.6 Building non-kbuild targets
@@ -129,7 +129,7 @@ The preferred name for the kbuild files are 'Makefile' but 'Kbuild' can · 82 unmodified lines
129129 be used and if both a 'Makefile' and a 'Kbuild' file exists, then the 'Kbuild'
130130 file will be used.
131131
132−Section 3.1 "Goal definitions" is a quick intro, further chapters provide
132+Section 3.1 "Goal definitions" is a quick intro; further chapters provide
133133 more details, with real examples.
134134
135135 3.1 Goal definitions
@@ -965,7 +965,7 @@ When kbuild executes, the following steps are followed (roughly): · 829 unmodified lines
965965 KBUILD_LDFLAGS := -m elf_s390
966966
967967 Note: ldflags-y can be used to further customise
968− the flags used. See chapter 3.7.
968+ the flags used. See section 3.7.
969969
970970 LDFLAGS_vmlinux
971971 Options for $(LD) when linking vmlinux
@@ -1121,7 +1121,7 @@ When kbuild executes, the following steps are followed (roughly): · 149 unmodified lines
11211121
11221122 In this example, the file target maketools will be processed
11231123 before descending down in the subdirectories.
1124− See also chapter XXX-TODO that describe how kbuild supports
1124+ See also chapter XXX-TODO that describes how kbuild supports
11251125 generating offset header files.
11261126
11271127
@@ -1261,7 +1261,7 @@ When kbuild executes, the following steps are followed (roughly): · 133 unmodified lines
12611261 always be built.
12621262 Assignments to $(targets) are without $(obj)/ prefix.
12631263 if_changed may be used in conjunction with custom commands as
1264− defined in 6.8 "Custom kbuild commands".
1264+ defined in 7.8 "Custom kbuild commands".
12651265
12661266 Note: It is a typical mistake to forget the FORCE prerequisite.
12671267 Another common pitfall is that whitespace is sometimes
@@ -1411,7 +1411,7 @@ When kbuild executes, the following steps are followed (roughly): · 143 unmodified lines
14111411 that may be shared between individual architectures.
14121412 The recommended approach how to use a generic header file is
14131413 to list the file in the Kbuild file.
1414− See "7.2 generic-y" for further info on syntax etc.
1414+ See "8.2 generic-y" for further info on syntax etc.
14151415
14161416 7.11 Post-link pass
14171417 -------------------
@@ -1601,4 +1601,4 @@ is the right choice. · 183 unmodified lines
16011601
16021602 - Describe how kbuild supports shipped files with _shipped.
16031603 - Generating offset header files.
1604−- Add more variables to section 7?
1604+- Add more variables to chapters 7 or 9?
Documentation/locking/locktypes.rst+12−12
@@ -164,14 +164,14 @@ by disabling preemption or interrupts. · 163 unmodified lines
164164 On non-PREEMPT_RT kernels local_lock operations map to the preemption and
165165 interrupt disabling and enabling primitives:
166166
167− =========================== ======================
168− local_lock(&llock) preempt_disable()
169− local_unlock(&llock) preempt_enable()
170− local_lock_irq(&llock) local_irq_disable()
171− local_unlock_irq(&llock) local_irq_enable()
172− local_lock_save(&llock) local_irq_save()
173− local_lock_restore(&llock) local_irq_save()
174− =========================== ======================
167+ =============================== ======================
168+ local_lock(&llock) preempt_disable()
169+ local_unlock(&llock) preempt_enable()
170+ local_lock_irq(&llock) local_irq_disable()
171+ local_unlock_irq(&llock) local_irq_enable()
172+ local_lock_irqsave(&llock) local_irq_save()
173+ local_unlock_irqrestore(&llock) local_irq_restore()
174+ =============================== ======================
175175
176176 The named scope of local_lock has two advantages over the regular
177177 primitives:
@@ -353,14 +353,14 @@ protection scope. So the following substitution is wrong:: · 175 unmodified lines
353353 {
354354 local_irq_save(flags); -> local_lock_irqsave(&local_lock_1, flags);
355355 func3();
356− local_irq_restore(flags); -> local_lock_irqrestore(&local_lock_1, flags);
356+ local_irq_restore(flags); -> local_unlock_irqrestore(&local_lock_1, flags);
357357 }
358358
359359 func2()
360360 {
361361 local_irq_save(flags); -> local_lock_irqsave(&local_lock_2, flags);
362362 func3();
363− local_irq_restore(flags); -> local_lock_irqrestore(&local_lock_2, flags);
363+ local_irq_restore(flags); -> local_unlock_irqrestore(&local_lock_2, flags);
364364 }
365365
366366 func3()
@@ -379,14 +379,14 @@ PREEMPT_RT-specific semantics of spinlock_t. The correct substitution is:: · 12 unmodified lines
379379 {
380380 local_irq_save(flags); -> local_lock_irqsave(&local_lock, flags);
381381 func3();
382− local_irq_restore(flags); -> local_lock_irqrestore(&local_lock, flags);
382+ local_irq_restore(flags); -> local_unlock_irqrestore(&local_lock, flags);
383383 }
384384
385385 func2()
386386 {
387387 local_irq_save(flags); -> local_lock_irqsave(&local_lock, flags);
388388 func3();
389− local_irq_restore(flags); -> local_lock_irqrestore(&local_lock, flags);
389+ local_irq_restore(flags); -> local_unlock_irqrestore(&local_lock, flags);
390390 }
391391
392392 func3()
Documentation/maintainer/maintainer-entry-profile.rst+1−0
@@ -101,3 +101,4 @@ to do something different in the near future. · 100 unmodified lines
101101
102102 ../doc-guide/maintainer-profile
103103 ../nvdimm/maintainer-entry-profile
104+ ../riscv/patch-acceptance
Documentation/networking/bonding.rst+0−18
@@ -2860,17 +2860,6 @@ version of the linux kernel, found on http://kernel.org · 2859 unmodified lines
28602860 The latest version of this document can be found in the latest kernel
28612861 source (named Documentation/networking/bonding.rst).
28622862
2863−Discussions regarding the usage of the bonding driver take place on the
2864−bonding-devel mailing list, hosted at sourceforge.net. If you have questions or
2865−problems, post them to the list. The list address is:
2866−
2867−bonding-devel@lists.sourceforge.net
2868−
2869−The administrative interface (to subscribe or unsubscribe) can
2870−be found at:
2871−
2872−https://lists.sourceforge.net/lists/listinfo/bonding-devel
2873−
28742863 Discussions regarding the development of the bonding driver take place
28752864 on the main Linux network mailing list, hosted at vger.kernel.org. The list
28762865 address is:
@@ -2881,10 +2870,3 @@ The administrative interface (to subscribe or unsubscribe) can · 4 unmodified lines
28812870 be found at:
28822871
28832872 http://vger.kernel.org/vger-lists.html#netdev
2884−
2885−Donald Becker's Ethernet Drivers and diag programs may be found at :
2886−
2887− - http://web.archive.org/web/%2E/http://www.scyld.com/network/
2888−
2889−You will also find a lot of information regarding Ethernet, NWay, MII,
2890−etc. at www.scyld.com.
Documentation/networking/dsa/configuration.rst+1−1
@@ -180,7 +180,7 @@ The configuration can only be set up via VLAN tagging and bridge setup. · 179 unmodified lines
180180
181181 # bring up the slave interfaces
182182 ip link set lan1 up
183− ip link set lan1 up
183+ ip link set lan2 up
184184 ip link set lan3 up
185185
186186 # create bridge
Documentation/powerpc/syscall64-abi.rst+3−1
@@ -49,16 +49,18 @@ Register preservation rules · 48 unmodified lines
4949 Register preservation rules match the ELF ABI calling sequence with the
5050 following differences:
5151
52−=========== ============= ========================================
5352 --- For the sc instruction, differences with the ELF ABI ---
53+=========== ============= ========================================
5454 r0 Volatile (System call number.)
5555 r3 Volatile (Parameter 1, and return value.)
5656 r4-r8 Volatile (Parameters 2-6.)
5757 cr0 Volatile (cr0.SO is the return error condition.)
5858 cr1, cr5-7 Nonvolatile
5959 lr Nonvolatile
60+=========== ============= ========================================
6061
6162 --- For the scv 0 instruction, differences with the ELF ABI ---
63+=========== ============= ========================================
6264 r0 Volatile (System call number.)
6365 r3 Volatile (Parameter 1, and return value.)
6466 r4-r8 Volatile (Parameters 2-6.)
Documentation/process/deprecated.rst+1−1
@@ -142,7 +142,7 @@ only NUL-terminated strings. The safe replacement is strscpy(). · 141 unmodified lines
142142 (Users of strscpy() still needing NUL-padding should instead
143143 use strscpy_pad().)
144144
145−If a caller is using non-NUL-terminated strings, strncpy()() can
145+If a caller is using non-NUL-terminated strings, strncpy() can
146146 still be used, but destinations should be marked with the `__nonstring
147147 <https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html>`_
148148 attribute to avoid future compiler warnings.
Documentation/sound/cards/audigy-mixer.rst+1−1
@@ -332,7 +332,7 @@ WO 9901953 (A1) · 331 unmodified lines
332332
333333
334334 US Patents (https://www.uspto.gov/)
335−----------------------------------
335+-----------------------------------
336336
337337 US 5925841
338338 Digital Sampling Instrument employing cache memory (Jul. 20, 1999)
Documentation/sound/cards/sb-live-mixer.rst+1−1
@@ -337,7 +337,7 @@ WO 9901953 (A1) · 336 unmodified lines
337337
338338
339339 US Patents (https://www.uspto.gov/)
340−----------------------------------
340+-----------------------------------
341341
342342 US 5925841
343343 Digital Sampling Instrument employing cache memory (Jul. 20, 1999)
Documentation/sound/designs/timestamping.rst+1−1
@@ -143,7 +143,7 @@ timestamp shows when the information is put together by the driver · 142 unmodified lines
143143 before returning from the ``STATUS`` and ``STATUS_EXT`` ioctl. in most cases
144144 this driver_timestamp will be identical to the regular system tstamp.
145145
146−Examples of typestamping with HDaudio:
146+Examples of timestamping with HDAudio:
147147
148148 1. DMA timestamp, no compensation for DMA+analog delay
149149 ::
Documentation/translations/it_IT/process/deprecated.rst+1−1
@@ -130,7 +130,7 @@ chi usa solo stringe terminate. La versione sicura da usare è · 129 unmodified lines
130130 strscpy(). (chi usa strscpy() e necessita di estendere la
131131 terminazione con NUL deve aggiungere una chiamata a memset())
132132
133−Se il chiamate no usa stringhe terminate con NUL, allore strncpy()()
133+Se il chiamate no usa stringhe terminate con NUL, allore strncpy()
134134 può continuare ad essere usata, ma i buffer di destinazione devono essere
135135 marchiati con l'attributo `__nonstring <https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html>`_
136136 per evitare avvisi durante la compilazione.
MAINTAINERS+82−50
@@ -1694,7 +1694,6 @@ F: arch/arm/mach-cns3xxx/ · 1693 unmodified lines
16941694
16951695 ARM/CAVIUM THUNDER NETWORK DRIVER
16961696 M: Sunil Goutham <sgoutham@marvell.com>
1697−M: Robert Richter <rrichter@marvell.com>
16981697 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
16991698 S: Supported
17001699 F: drivers/net/ethernet/cavium/thunder/
@@ -3205,6 +3204,7 @@ S: Maintained · 1504 unmodified lines
32053204 T: git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
32063205 F: block/
32073206 F: drivers/block/
3207+F: include/linux/blk*
32083208 F: kernel/trace/blktrace.c
32093209 F: lib/sbitmap.c
32103210
@@ -3388,6 +3388,7 @@ M: Florian Fainelli <f.fainelli@gmail.com> · 177 unmodified lines
33883388 L: netdev@vger.kernel.org
33893389 L: openwrt-devel@lists.openwrt.org (subscribers-only)
33903390 S: Supported
3391+F: Documentation/devicetree/bindings/net/dsa/b53.txt
33913392 F: drivers/net/dsa/b53/*
33923393 F: include/linux/platform_data/b53.h
33933394
@@ -3573,13 +3574,28 @@ L: bcm-kernel-feedback-list@broadcom.com · 179 unmodified lines
35733574 S: Maintained
35743575 F: drivers/phy/broadcom/phy-brcm-usb*
35753576
3577+BROADCOM ETHERNET PHY DRIVERS
3578+M: Florian Fainelli <f.fainelli@gmail.com>
3579+L: bcm-kernel-feedback-list@broadcom.com
3580+L: netdev@vger.kernel.org
3581+S: Supported
3582+F: Documentation/devicetree/bindings/net/broadcom-bcm87xx.txt
3583+F: drivers/net/phy/bcm*.[ch]
3584+F: drivers/net/phy/broadcom.c
3585+F: include/linux/brcmphy.h
3586+
35763587 BROADCOM GENET ETHERNET DRIVER
35773588 M: Doug Berger <opendmb@gmail.com>
35783589 M: Florian Fainelli <f.fainelli@gmail.com>
35793590 L: bcm-kernel-feedback-list@broadcom.com
35803591 L: netdev@vger.kernel.org
35813592 S: Supported
3593+F: Documentation/devicetree/bindings/net/brcm,bcmgenet.txt
3594+F: Documentation/devicetree/bindings/net/brcm,unimac-mdio.txt
35823595 F: drivers/net/ethernet/broadcom/genet/
3596+F: drivers/net/mdio/mdio-bcm-unimac.c
3597+F: include/linux/platform_data/bcmgenet.h
3598+F: include/linux/platform_data/mdio-bcm-unimac.h
35833599
35843600 BROADCOM IPROC ARM ARCHITECTURE
35853601 M: Ray Jui <rjui@broadcom.com>
@@ -3931,8 +3947,8 @@ W: https://wireless.wiki.kernel.org/en/users/Drivers/carl9170 · 345 unmodified lines
39313947 F: drivers/net/wireless/ath/carl9170/
39323948
39333949 CAVIUM I2C DRIVER
3934−M: Robert Richter <rrichter@marvell.com>
3935−S: Supported
3950+M: Robert Richter <rric@kernel.org>
3951+S: Odd Fixes
39363952 W: http://www.marvell.com
39373953 F: drivers/i2c/busses/i2c-octeon*
39383954 F: drivers/i2c/busses/i2c-thunderx*
@@ -3947,8 +3963,8 @@ W: http://www.marvell.com · 8 unmodified lines
39473963 F: drivers/net/ethernet/cavium/liquidio/
39483964
39493965 CAVIUM MMC DRIVER
3950−M: Robert Richter <rrichter@marvell.com>
3951−S: Supported
3966+M: Robert Richter <rric@kernel.org>
3967+S: Odd Fixes
39523968 W: http://www.marvell.com
39533969 F: drivers/mmc/host/cavium*
39543970
@@ -3960,9 +3976,9 @@ W: http://www.marvell.com · 5 unmodified lines
39603976 F: drivers/crypto/cavium/cpt/
39613977
39623978 CAVIUM THUNDERX2 ARM64 SOC
3963−M: Robert Richter <rrichter@marvell.com>
3979+M: Robert Richter <rric@kernel.org>
39643980 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
3965−S: Maintained
3981+S: Odd Fixes
39663982 F: Documentation/devicetree/bindings/arm/cavium-thunder2.txt
39673983 F: arch/arm64/boot/dts/cavium/thunder2-99xx*
39683984
@@ -4241,6 +4257,8 @@ S: Maintained · 272 unmodified lines
42414257 F: .clang-format
42424258
42434259 CLANG/LLVM BUILD SUPPORT
4260+M: Nathan Chancellor <natechancellor@gmail.com>
4261+M: Nick Desaulniers <ndesaulniers@google.com>
42444262 L: clang-built-linux@googlegroups.com
42454263 S: Supported
42464264 W: https://clangbuiltlinux.github.io/
@@ -5050,7 +5068,7 @@ F: include/linux/dm-*.h · 803 unmodified lines
50505068 F: include/uapi/linux/dm-*.h
50515069
50525070 DEVLINK
5053−M: Jiri Pirko <jiri@mellanox.com>
5071+M: Jiri Pirko <jiri@nvidia.com>
50545072 L: netdev@vger.kernel.org
50555073 S: Supported
50565074 F: Documentation/networking/devlink
@@ -5239,6 +5257,7 @@ DOCUMENTATION · 182 unmodified lines
52395257 M: Jonathan Corbet <corbet@lwn.net>
52405258 L: linux-doc@vger.kernel.org
52415259 S: Maintained
5260+P: Documentation/doc-guide/maintainer-profile.rst
52425261 T: git git://git.lwn.net/linux.git docs-next
52435262 F: Documentation/
52445263 F: scripts/documentation-file-ref-check
@@ -6081,7 +6100,7 @@ F: include/linux/dynamic_debug.h · 836 unmodified lines
60816100 F: lib/dynamic_debug.c
60826101
60836102 DYNAMIC INTERRUPT MODERATION
6084−M: Tal Gilboa <talgi@mellanox.com>
6103+M: Tal Gilboa <talgi@nvidia.com>
60856104 S: Maintained
60866105 F: Documentation/networking/net_dim.rst
60876106 F: include/linux/dim.h
@@ -6161,7 +6180,7 @@ F: Documentation/devicetree/bindings/edac/aspeed-sdram-edac.txt · 73 unmodified lines
61616180 F: drivers/edac/aspeed_edac.c
61626181
61636182 EDAC-BLUEFIELD
6164−M: Shravan Kumar Ramani <sramani@mellanox.com>
6183+M: Shravan Kumar Ramani <sramani@nvidia.com>
61656184 S: Supported
61666185 F: drivers/edac/bluefield_edac.c
61676186
@@ -6173,16 +6192,15 @@ F: drivers/edac/highbank* · 5 unmodified lines
61736192
61746193 EDAC-CAVIUM OCTEON
61756194 M: Ralf Baechle <ralf@linux-mips.org>
6176−M: Robert Richter <rrichter@marvell.com>
61776195 L: linux-edac@vger.kernel.org
61786196 L: linux-mips@vger.kernel.org
61796197 S: Supported
61806198 F: drivers/edac/octeon_edac*
61816199
61826200 EDAC-CAVIUM THUNDERX
6183−M: Robert Richter <rrichter@marvell.com>
6201+M: Robert Richter <rric@kernel.org>
61846202 L: linux-edac@vger.kernel.org
6185−S: Supported
6203+S: Odd Fixes
61866204 F: drivers/edac/thunderx_edac*
61876205
61886206 EDAC-CORE
@@ -6190,7 +6208,7 @@ M: Borislav Petkov <bp@alien8.de> · 1 unmodified line
61906208 M: Mauro Carvalho Chehab <mchehab@kernel.org>
61916209 M: Tony Luck <tony.luck@intel.com>
61926210 R: James Morse <james.morse@arm.com>
6193−R: Robert Richter <rrichter@marvell.com>
6211+R: Robert Richter <rric@kernel.org>
61946212 L: linux-edac@vger.kernel.org
61956213 S: Supported
61966214 T: git git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras.git edac-for-next
@@ -6483,8 +6501,8 @@ S: Odd Fixes · 286 unmodified lines
64836501 F: drivers/net/ethernet/agere/
64846502
64856503 ETHERNET BRIDGE
6486−M: Roopa Prabhu <roopa@cumulusnetworks.com>
6487−M: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
6504+M: Roopa Prabhu <roopa@nvidia.com>
6505+M: Nikolay Aleksandrov <nikolay@nvidia.com>
64886506 L: bridge@lists.linux-foundation.org (moderated for non-subscribers)
64896507 L: netdev@vger.kernel.org
64906508 S: Maintained
@@ -6494,7 +6512,6 @@ F: net/bridge/ · 3 unmodified lines
64946512
64956513 ETHERNET PHY LIBRARY
64966514 M: Andrew Lunn <andrew@lunn.ch>
6497−M: Florian Fainelli <f.fainelli@gmail.com>
64986515 M: Heiner Kallweit <hkallweit1@gmail.com>
64996516 R: Russell King <linux@armlinux.org.uk>
65006517 L: netdev@vger.kernel.org
@@ -6599,7 +6616,7 @@ F: drivers/iommu/exynos-iommu.c · 98 unmodified lines
65996616
66006617 EZchip NPS platform support
66016618 M: Vineet Gupta <vgupta@synopsys.com>
6602−M: Ofer Levi <oferle@mellanox.com>
6619+M: Ofer Levi <oferle@nvidia.com>
66036620 S: Supported
66046621 F: arch/arc/boot/dts/eznps.dts
66056622 F: arch/arc/plat-eznps
@@ -8255,7 +8272,7 @@ IA64 (Itanium) PLATFORM · 1649 unmodified lines
82558272 M: Tony Luck <tony.luck@intel.com>
82568273 M: Fenghua Yu <fenghua.yu@intel.com>
82578274 L: linux-ia64@vger.kernel.org
8258−S: Maintained
8275+S: Odd Fixes
82598276 T: git git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux.git
82608277 F: Documentation/ia64/
82618278 F: arch/ia64/
@@ -8563,7 +8580,7 @@ F: drivers/iio/pressure/dps310.c · 301 unmodified lines
85638580
85648581 INFINIBAND SUBSYSTEM
85658582 M: Doug Ledford <dledford@redhat.com>
8566−M: Jason Gunthorpe <jgg@mellanox.com>
8583+M: Jason Gunthorpe <jgg@nvidia.com>
85678584 L: linux-rdma@vger.kernel.org
85688585 S: Supported
85698586 W: https://github.com/linux-rdma/rdma-core
@@ -9226,7 +9243,7 @@ F: drivers/firmware/iscsi_ibft* · 656 unmodified lines
92269243
92279244 ISCSI EXTENSIONS FOR RDMA (ISER) INITIATOR
92289245 M: Sagi Grimberg <sagi@grimberg.me>
9229−M: Max Gurtovoy <maxg@mellanox.com>
9246+M: Max Gurtovoy <maxg@nvidia.com>
92309247 L: linux-rdma@vger.kernel.org
92319248 S: Supported
92329249 W: http://www.openfabrics.org
@@ -11072,7 +11089,7 @@ F: Documentation/devicetree/bindings/input/touchscreen/melfas_mip4.txt · 1839 unmodified lines
1107211089 F: drivers/input/touchscreen/melfas_mip4.c
1107311090
1107411091 MELLANOX ETHERNET DRIVER (mlx4_en)
11075−M: Tariq Toukan <tariqt@mellanox.com>
11092+M: Tariq Toukan <tariqt@nvidia.com>
1107611093 L: netdev@vger.kernel.org
1107711094 S: Supported
1107811095 W: http://www.mellanox.com
@@ -11080,7 +11097,7 @@ Q: http://patchwork.ozlabs.org/project/netdev/list/ · 1 unmodified line
1108011097 F: drivers/net/ethernet/mellanox/mlx4/en_*
1108111098
1108211099 MELLANOX ETHERNET DRIVER (mlx5e)
11083−M: Saeed Mahameed <saeedm@mellanox.com>
11100+M: Saeed Mahameed <saeedm@nvidia.com>
1108411101 L: netdev@vger.kernel.org
1108511102 S: Supported
1108611103 W: http://www.mellanox.com
@@ -11088,7 +11105,7 @@ Q: http://patchwork.ozlabs.org/project/netdev/list/ · 1 unmodified line
1108811105 F: drivers/net/ethernet/mellanox/mlx5/core/en_*
1108911106
1109011107 MELLANOX ETHERNET INNOVA DRIVERS
11091−R: Boris Pismenny <borisp@mellanox.com>
11108+R: Boris Pismenny <borisp@nvidia.com>
1109211109 L: netdev@vger.kernel.org
1109311110 S: Supported
1109411111 W: http://www.mellanox.com
@@ -11099,8 +11116,8 @@ F: drivers/net/ethernet/mellanox/mlx5/core/fpga/* · 4 unmodified lines
1109911116 F: include/linux/mlx5/mlx5_ifc_fpga.h
1110011117
1110111118 MELLANOX ETHERNET SWITCH DRIVERS
11102−M: Jiri Pirko <jiri@mellanox.com>
11103−M: Ido Schimmel <idosch@mellanox.com>
11119+M: Jiri Pirko <jiri@nvidia.com>
11120+M: Ido Schimmel <idosch@nvidia.com>
1110411121 L: netdev@vger.kernel.org
1110511122 S: Supported
1110611123 W: http://www.mellanox.com
@@ -11109,7 +11126,7 @@ F: drivers/net/ethernet/mellanox/mlxsw/ · 2 unmodified lines
1110911126 F: tools/testing/selftests/drivers/net/mlxsw/
1111011127
1111111128 MELLANOX FIRMWARE FLASH LIBRARY (mlxfw)
11112−M: mlxsw@mellanox.com
11129+M: mlxsw@nvidia.com
1111311130 L: netdev@vger.kernel.org
1111411131 S: Supported
1111511132 W: http://www.mellanox.com
@@ -11119,7 +11136,7 @@ F: drivers/net/ethernet/mellanox/mlxfw/ · 3 unmodified lines
1111911136 MELLANOX HARDWARE PLATFORM SUPPORT
1112011137 M: Andy Shevchenko <andy@infradead.org>
1112111138 M: Darren Hart <dvhart@infradead.org>
11122−M: Vadim Pasternak <vadimp@mellanox.com>
11139+M: Vadim Pasternak <vadimp@nvidia.com>
1112311140 L: platform-driver-x86@vger.kernel.org
1112411141 S: Supported
1112511142 F: Documentation/ABI/testing/sysfs-platform-mellanox-bootctl
@@ -11127,7 +11144,7 @@ F: drivers/platform/mellanox/ · 1 unmodified line
1112711144 F: include/linux/platform_data/mlxreg.h
1112811145
1112911146 MELLANOX MLX4 core VPI driver
11130−M: Tariq Toukan <tariqt@mellanox.com>
11147+M: Tariq Toukan <tariqt@nvidia.com>
1113111148 L: netdev@vger.kernel.org
1113211149 L: linux-rdma@vger.kernel.org
1113311150 S: Supported
@@ -11137,7 +11154,7 @@ F: drivers/net/ethernet/mellanox/mlx4/ · 3 unmodified lines
1113711154 F: include/linux/mlx4/
1113811155
1113911156 MELLANOX MLX4 IB driver
11140−M: Yishai Hadas <yishaih@mellanox.com>
11157+M: Yishai Hadas <yishaih@nvidia.com>
1114111158 L: linux-rdma@vger.kernel.org
1114211159 S: Supported
1114311160 W: http://www.mellanox.com
@@ -11147,8 +11164,8 @@ F: include/linux/mlx4/ · 3 unmodified lines
1114711164 F: include/uapi/rdma/mlx4-abi.h
1114811165
1114911166 MELLANOX MLX5 core VPI driver
11150−M: Saeed Mahameed <saeedm@mellanox.com>
11151−M: Leon Romanovsky <leonro@mellanox.com>
11167+M: Saeed Mahameed <saeedm@nvidia.com>
11168+M: Leon Romanovsky <leonro@nvidia.com>
1115211169 L: netdev@vger.kernel.org
1115311170 L: linux-rdma@vger.kernel.org
1115411171 S: Supported
@@ -11159,7 +11176,7 @@ F: drivers/net/ethernet/mellanox/mlx5/core/ · 4 unmodified lines
1115911176 F: include/linux/mlx5/
1116011177
1116111178 MELLANOX MLX5 IB driver
11162−M: Leon Romanovsky <leonro@mellanox.com>
11179+M: Leon Romanovsky <leonro@nvidia.com>
1116311180 L: linux-rdma@vger.kernel.org
1116411181 S: Supported
1116511182 W: http://www.mellanox.com
@@ -11169,8 +11186,8 @@ F: include/linux/mlx5/ · 3 unmodified lines
1116911186 F: include/uapi/rdma/mlx5-abi.h
1117011187
1117111188 MELLANOX MLXCPLD I2C AND MUX DRIVER
11172−M: Vadim Pasternak <vadimp@mellanox.com>
11173−M: Michael Shych <michaelsh@mellanox.com>
11189+M: Vadim Pasternak <vadimp@nvidia.com>
11190+M: Michael Shych <michaelsh@nvidia.com>
1117411191 L: linux-i2c@vger.kernel.org
1117511192 S: Supported
1117611193 F: Documentation/i2c/busses/i2c-mlxcpld.rst
@@ -11178,7 +11195,7 @@ F: drivers/i2c/busses/i2c-mlxcpld.c · 1 unmodified line
1117811195 F: drivers/i2c/muxes/i2c-mux-mlxcpld.c
1117911196
1118011197 MELLANOX MLXCPLD LED DRIVER
11181−M: Vadim Pasternak <vadimp@mellanox.com>
11198+M: Vadim Pasternak <vadimp@nvidia.com>
1118211199 L: linux-leds@vger.kernel.org
1118311200 S: Supported
1118411201 F: Documentation/leds/leds-mlxcpld.rst
@@ -11186,7 +11203,7 @@ F: drivers/leds/leds-mlxcpld.c · 1 unmodified line
1118611203 F: drivers/leds/leds-mlxreg.c
1118711204
1118811205 MELLANOX PLATFORM DRIVER
11189−M: Vadim Pasternak <vadimp@mellanox.com>
11206+M: Vadim Pasternak <vadimp@nvidia.com>
1119011207 L: platform-driver-x86@vger.kernel.org
1119111208 S: Supported
1119211209 F: drivers/platform/x86/mlx-platform.c
@@ -12167,8 +12184,8 @@ F: net/ipv6/syncookies.c · 974 unmodified lines
1216712184 F: net/ipv6/tcp*.c
1216812185
1216912186 NETWORKING [TLS]
12170−M: Boris Pismenny <borisp@mellanox.com>
12171−M: Aviad Yehezkel <aviadye@mellanox.com>
12187+M: Boris Pismenny <borisp@nvidia.com>
12188+M: Aviad Yehezkel <aviadye@nvidia.com>
1217212189 M: John Fastabend <john.fastabend@gmail.com>
1217312190 M: Daniel Borkmann <daniel@iogearbox.net>
1217412191 M: Jakub Kicinski <kuba@kernel.org>
@@ -12468,7 +12485,7 @@ S: Supported · 293 unmodified lines
1246812485 F: drivers/nfc/nxp-nci
1246912486
1247012487 OBJAGG
12471−M: Jiri Pirko <jiri@mellanox.com>
12488+M: Jiri Pirko <jiri@nvidia.com>
1247212489 L: netdev@vger.kernel.org
1247312490 S: Supported
1247412491 F: include/linux/objagg.h
@@ -13112,7 +13129,7 @@ F: drivers/video/logo/logo_parisc* · 637 unmodified lines
1311213129 F: include/linux/hp_sdc.h
1311313130
1311413131 PARMAN
13115−M: Jiri Pirko <jiri@mellanox.com>
13132+M: Jiri Pirko <jiri@nvidia.com>
1311613133 L: netdev@vger.kernel.org
1311713134 S: Supported
1311813135 F: include/linux/parman.h
@@ -13431,10 +13448,10 @@ F: Documentation/devicetree/bindings/pci/axis,artpec* · 312 unmodified lines
1343113448 F: drivers/pci/controller/dwc/*artpec*
1343213449
1343313450 PCIE DRIVER FOR CAVIUM THUNDERX
13434−M: Robert Richter <rrichter@marvell.com>
13451+M: Robert Richter <rric@kernel.org>
1343513452 L: linux-pci@vger.kernel.org
1343613453 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
13437−S: Supported
13454+S: Odd Fixes
1343813455 F: drivers/pci/controller/pci-thunder-*
1343913456
1344013457 PCIE DRIVER FOR HISILICON
@@ -13571,12 +13588,18 @@ F: kernel/events/* · 130 unmodified lines
1357113588 F: tools/lib/perf/
1357213589 F: tools/perf/
1357313590
13574−PERFORMANCE EVENTS SUBSYSTEM ARM64 PMU EVENTS
13591+PERFORMANCE EVENTS TOOLING ARM64
1357513592 R: John Garry <john.garry@huawei.com>
1357613593 R: Will Deacon <will@kernel.org>
13594+R: Mathieu Poirier <mathieu.poirier@linaro.org>
13595+R: Leo Yan <leo.yan@linaro.org>
1357713596 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
1357813597 S: Supported
13598+F: tools/build/feature/test-libopencsd.c
13599+F: tools/perf/arch/arm*/
1357913600 F: tools/perf/pmu-events/arch/arm64/
13601+F: tools/perf/util/arm-spe*
13602+F: tools/perf/util/cs-etm*
1358013603
1358113604 PERSONALITY HANDLING
1358213605 M: Christoph Hellwig <hch@infradead.org>
@@ -14367,7 +14390,7 @@ M: Rob Clark <robdclark@gmail.com> · 784 unmodified lines
1436714390 L: iommu@lists.linux-foundation.org
1436814391 L: linux-arm-msm@vger.kernel.org
1436914392 S: Maintained
14370−F: drivers/iommu/qcom_iommu.c
14393+F: drivers/iommu/arm/arm-smmu/qcom_iommu.c
1437114394
1437214395 QUALCOMM IPCC MAILBOX DRIVER
1437314396 M: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
@@ -16037,7 +16060,7 @@ F: drivers/infiniband/sw/siw/ · 1663 unmodified lines
1603716060 F: include/uapi/rdma/siw-abi.h
1603816061
1603916062 SOFT-ROCE DRIVER (rxe)
16040−M: Zhu Yanjun <yanjunz@mellanox.com>
16063+M: Zhu Yanjun <yanjunz@nvidia.com>
1604116064 L: linux-rdma@vger.kernel.org
1604216065 S: Supported
1604316066 F: drivers/infiniband/sw/rxe/
@@ -17118,8 +17141,8 @@ S: Maintained · 1074 unmodified lines
1711817141 F: Documentation/devicetree/bindings/arm/keystone/ti,k3-sci-common.yaml
1711917142 F: Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
1712017143 F: Documentation/devicetree/bindings/clock/ti,sci-clk.txt
17121−F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.txt
17122−F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt
17144+F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml
17145+F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml
1712317146 F: Documentation/devicetree/bindings/reset/ti,sci-reset.txt
1712417147 F: Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
1712517148 F: drivers/clk/keystone/sci-clk.c
@@ -17216,8 +17239,8 @@ S: Maintained · 90 unmodified lines
1721617239 F: drivers/net/thunderbolt.c
1721717240
1721817241 THUNDERX GPIO DRIVER
17219−M: Robert Richter <rrichter@marvell.com>
17220−S: Maintained
17242+M: Robert Richter <rric@kernel.org>
17243+S: Odd Fixes
1722117244 F: drivers/gpio/gpio-thunderx.c
1722217245
1722317246 TI AM437X VPFE DRIVER
@@ -18874,6 +18897,15 @@ S: Maintained · 1650 unmodified lines
1887418897 T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/core
1887518898 F: arch/x86/platform
1887618899
18900+X86 PLATFORM UV HPE SUPERDOME FLEX
18901+M: Steve Wahl <steve.wahl@hpe.com>
18902+R: Dimitri Sivanich <dimitri.sivanich@hpe.com>
18903+R: Russ Anderson <russ.anderson@hpe.com>
18904+S: Supported
18905+F: arch/x86/include/asm/uv/
18906+F: arch/x86/kernel/apic/x2apic_uv_x.c
18907+F: arch/x86/platform/uv/
18908+
1887718909 X86 VDSO
1887818910 M: Andy Lutomirski <luto@kernel.org>
1887918911 L: linux-kernel@vger.kernel.org
Makefile+3−4
@@ -2,7 +2,7 @@ · 1 unmodified line
22 VERSION = 5
33 PATCHLEVEL = 9
44 SUBLEVEL = 0
5−EXTRAVERSION = -rc1
5+EXTRAVERSION = -rc4
66 NAME = Kleptomaniac Octopus
77
88 # *DOCUMENTATION*
@@ -265,8 +265,7 @@ no-dot-config-targets := $(clean-targets) \ · 256 unmodified lines
265265 $(version_h) headers headers_% archheaders archscripts \
266266 %asm-generic kernelversion %src-pkg dt_binding_check \
267267 outputmakefile
268−no-sync-config-targets := $(no-dot-config-targets) install %install \
269− kernelrelease
268+no-sync-config-targets := $(no-dot-config-targets) %install kernelrelease
270269 single-targets := %.a %.i %.ko %.lds %.ll %.lst %.mod %.o %.s %.symtypes %/
271270
272271 config-build :=
@@ -292,7 +291,7 @@ ifneq ($(KBUILD_EXTMOD),) · 19 unmodified lines
292291 endif
293292
294293 ifeq ($(KBUILD_EXTMOD),)
295− ifneq ($(filter config %config,$(MAKECMDGOALS)),)
294+ ifneq ($(filter %config,$(MAKECMDGOALS)),)
296295 config-build := 1
297296 ifneq ($(words $(MAKECMDGOALS)),1)
298297 mixed-build := 1
arch/alpha/kernel/module.c+1−1
@@ -212,7 +212,7 @@ apply_relocate_add(Elf64_Shdr *sechdrs, const char *strtab, · 211 unmodified lines
212212 STO_ALPHA_STD_GPLOAD)
213213 /* Omit the prologue. */
214214 value += 8;
215− /* FALLTHRU */
215+ fallthrough;
216216 case R_ALPHA_BRADDR:
217217 value -= (u64)location + 4;
218218 if (value & 3)
arch/alpha/kernel/signal.c+1−1
@@ -453,7 +453,7 @@ syscall_restart(unsigned long r0, unsigned long r19, · 452 unmodified lines
453453 regs->r0 = EINTR;
454454 break;
455455 }
456− /* fallthrough */
456+ fallthrough;
457457 case ERESTARTNOINTR:
458458 regs->r0 = r0; /* reset v0 and a3 and replay syscall */
459459 regs->r19 = r19;
arch/alpha/kernel/traps.c+2−2
@@ -883,7 +883,7 @@ do_entUnaUser(void __user * va, unsigned long opcode, · 882 unmodified lines
883883
884884 case 0x26: /* sts */
885885 fake_reg = s_reg_to_mem(alpha_read_fp_reg(reg));
886− /* FALLTHRU */
886+ fallthrough;
887887
888888 case 0x2c: /* stl */
889889 __asm__ __volatile__(
@@ -911,7 +911,7 @@ do_entUnaUser(void __user * va, unsigned long opcode, · 21 unmodified lines
911911
912912 case 0x27: /* stt */
913913 fake_reg = alpha_read_fp_reg(reg);
914− /* FALLTHRU */
914+ fallthrough;
915915
916916 case 0x2d: /* stq */
917917 __asm__ __volatile__(
arch/arc/boot/dts/hsdk.dts+4−2
@@ -88,6 +88,8 @@ · 87 unmodified lines
8888
8989 arcpct: pct {
9090 compatible = "snps,archs-pct";
91+ interrupt-parent = <&cpu_intc>;
92+ interrupts = <20>;
9193 };
9294
9395 /* TIMER0 with interrupt for clockevent */
@@ -208,7 +210,7 @@ · 114 unmodified lines
208210 reg = <0x8000 0x2000>;
209211 interrupts = <10>;
210212 interrupt-names = "macirq";
211− phy-mode = "rgmii";
213+ phy-mode = "rgmii-id";
212214 snps,pbl = <32>;
213215 snps,multicast-filter-bins = <256>;
214216 clocks = <&gmacclk>;
@@ -226,7 +228,7 @@ · 11 unmodified lines
226228 #address-cells = <1>;
227229 #size-cells = <0>;
228230 compatible = "snps,dwmac-mdio";
229− phy0: ethernet-phy@0 {
231+ phy0: ethernet-phy@0 { /* Micrel KSZ9031 */
230232 reg = <0>;
231233 };
232234 };
arch/arc/include/asm/pgalloc.h+2−2
@@ -18,10 +18,10 @@ · 17 unmodified lines
1818 * vineetg: April 2010
1919 * -Switched pgtable_t from being struct page * to unsigned long
2020 * =Needed so that Page Table allocator (pte_alloc_one) is not forced to
21− * to deal with struct page. Thay way in future we can make it allocate
21+ * deal with struct page. That way in future we can make it allocate
2222 * multiple PG Tbls in one Page Frame
2323 * =sweet side effect is avoiding calls to ugly page_address( ) from the
24− * pg-tlb allocator sub-sys (pte_alloc_one, ptr_free, pmd_populate
24+ * pg-tlb allocator sub-sys (pte_alloc_one, ptr_free, pmd_populate)
2525 *
2626 * Amit Bhor, Sameer Dhavale: Codito Technologies 2004
2727 */
arch/arc/kernel/disasm.c+1−1
@@ -339,7 +339,7 @@ void __kprobes disasm_instr(unsigned long addr, struct disasm_state *state, · 338 unmodified lines
339339
340340 case op_LDWX_S: /* LDWX_S c, [b, u6] */
341341 state->x = 1;
342− /* intentional fall-through */
342+ fallthrough;
343343
344344 case op_LDW_S: /* LDW_S c, [b, u6] */
345345 state->zz = 2;
arch/arc/kernel/perf_event.c+4−10
@@ -562,7 +562,7 @@ static int arc_pmu_device_probe(struct platform_device *pdev) · 561 unmodified lines
562562 {
563563 struct arc_reg_pct_build pct_bcr;
564564 struct arc_reg_cc_build cc_bcr;
565− int i, has_interrupts;
565+ int i, has_interrupts, irq;
566566 int counter_size; /* in bits */
567567
568568 union cc_name {
@@ -637,13 +637,7 @@ static int arc_pmu_device_probe(struct platform_device *pdev) · 68 unmodified lines
637637 .attr_groups = arc_pmu->attr_groups,
638638 };
639639
640− if (has_interrupts) {
641− int irq = platform_get_irq(pdev, 0);
642−
643− if (irq < 0) {
644− pr_err("Cannot get IRQ number for the platform\n");
645− return -ENODEV;
646− }
640+ if (has_interrupts && (irq = platform_get_irq(pdev, 0) >= 0)) {
647641
648642 arc_pmu->irq = irq;
649643
@@ -652,9 +646,9 @@ static int arc_pmu_device_probe(struct platform_device *pdev) · 2 unmodified lines
652646 this_cpu_ptr(&arc_pmu_cpu));
653647
654648 on_each_cpu(arc_cpu_pmu_irq_init, &irq, 1);
655−
656− } else
649+ } else {
657650 arc_pmu->pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT;
651+ }
658652
659653 /*
660654 * perf parser doesn't really like '-' symbol in events name, so let's
arch/arc/kernel/signal.c+1−1
@@ -321,7 +321,7 @@ static void arc_restart_syscall(struct k_sigaction *ka, struct pt_regs *regs) · 320 unmodified lines
321321 regs->r0 = -EINTR;
322322 break;
323323 }
324− /* fallthrough */
324+ fallthrough;
325325
326326 case -ERESTARTNOINTR:
327327 /*
arch/arc/kernel/troubleshoot.c+30−47
@@ -18,44 +18,37 @@ · 17 unmodified lines
1818
1919 #define ARC_PATH_MAX 256
2020
21−/*
22− * Common routine to print scratch regs (r0-r12) or callee regs (r13-r25)
23− * -Prints 3 regs per line and a CR.
24− * -To continue, callee regs right after scratch, special handling of CR
25− */
26−static noinline void print_reg_file(long *reg_rev, int start_num)
21+static noinline void print_regs_scratch(struct pt_regs *regs)
2722 {
28− unsigned int i;
29− char buf[512];
30− int n = 0, len = sizeof(buf);
31−
32− for (i = start_num; i < start_num + 13; i++) {
33− n += scnprintf(buf + n, len - n, "r%02u: 0x%08lx\t",
34− i, (unsigned long)*reg_rev);
35−
36− if (((i + 1) % 3) == 0)
37− n += scnprintf(buf + n, len - n, "\n");
38−
39− /* because pt_regs has regs reversed: r12..r0, r25..r13 */
40− if (is_isa_arcv2() && start_num == 0)
41− reg_rev++;
42− else
43− reg_rev--;
44− }
45−
46− if (start_num != 0)
47− n += scnprintf(buf + n, len - n, "\n\n");
23+ pr_cont("BTA: 0x%08lx\n SP: 0x%08lx FP: 0x%08lx BLK: %pS\n",
24+ regs->bta, regs->sp, regs->fp, (void *)regs->blink);
25+ pr_cont("LPS: 0x%08lx\tLPE: 0x%08lx\tLPC: 0x%08lx\n",
26+ regs->lp_start, regs->lp_end, regs->lp_count);
4827
49− /* To continue printing callee regs on same line as scratch regs */
50− if (start_num == 0)
51− pr_info("%s", buf);
52− else
53− pr_cont("%s\n", buf);
28+ pr_info("r00: 0x%08lx\tr01: 0x%08lx\tr02: 0x%08lx\n" \
29+ "r03: 0x%08lx\tr04: 0x%08lx\tr05: 0x%08lx\n" \
30+ "r06: 0x%08lx\tr07: 0x%08lx\tr08: 0x%08lx\n" \
31+ "r09: 0x%08lx\tr10: 0x%08lx\tr11: 0x%08lx\n" \
32+ "r12: 0x%08lx\t",
33+ regs->r0, regs->r1, regs->r2,
34+ regs->r3, regs->r4, regs->r5,
35+ regs->r6, regs->r7, regs->r8,
36+ regs->r9, regs->r10, regs->r11,
37+ regs->r12);
5438 }
5539
56−static void show_callee_regs(struct callee_regs *cregs)
40+static void print_regs_callee(struct callee_regs *regs)
5741 {
58− print_reg_file(&(cregs->r13), 13);
42+ pr_cont("r13: 0x%08lx\tr14: 0x%08lx\n" \
43+ "r15: 0x%08lx\tr16: 0x%08lx\tr17: 0x%08lx\n" \
44+ "r18: 0x%08lx\tr19: 0x%08lx\tr20: 0x%08lx\n" \
45+ "r21: 0x%08lx\tr22: 0x%08lx\tr23: 0x%08lx\n" \
46+ "r24: 0x%08lx\tr25: 0x%08lx\n",
47+ regs->r13, regs->r14,
48+ regs->r15, regs->r16, regs->r17,
49+ regs->r18, regs->r19, regs->r20,
50+ regs->r21, regs->r22, regs->r23,
51+ regs->r24, regs->r25);
5952 }
6053
6154 static void print_task_path_n_nm(struct task_struct *tsk)
@@ -175,7 +168,7 @@ static void show_ecr_verbose(struct pt_regs *regs) · 113 unmodified lines
175168 void show_regs(struct pt_regs *regs)
176169 {
177170 struct task_struct *tsk = current;
178− struct callee_regs *cregs;
171+ struct callee_regs *cregs = (struct callee_regs *)tsk->thread.callee_reg;
179172
180173 /*
181174 * generic code calls us with preemption disabled, but some calls
@@ -204,25 +197,15 @@ void show_regs(struct pt_regs *regs) · 22 unmodified lines
204197 STS_BIT(regs, A2), STS_BIT(regs, A1),
205198 STS_BIT(regs, E2), STS_BIT(regs, E1));
206199 #else
207− pr_cont(" [%2s%2s%2s%2s]",
200+ pr_cont(" [%2s%2s%2s%2s] ",
208201 STS_BIT(regs, IE),
209202 (regs->status32 & STATUS_U_MASK) ? "U " : "K ",
210203 STS_BIT(regs, DE), STS_BIT(regs, AE));
211204 #endif
212− pr_cont(" BTA: 0x%08lx\n SP: 0x%08lx FP: 0x%08lx BLK: %pS\n",
213− regs->bta, regs->sp, regs->fp, (void *)regs->blink);
214− pr_info("LPS: 0x%08lx\tLPE: 0x%08lx\tLPC: 0x%08lx\n",
215− regs->lp_start, regs->lp_end, regs->lp_count);
216−
217− /* print regs->r0 thru regs->r12
218− * Sequential printing was generating horrible code
219− */
220− print_reg_file(&(regs->r0), 0);
221205
222− /* If Callee regs were saved, display them too */
223− cregs = (struct callee_regs *)current->thread.callee_reg;
206+ print_regs_scratch(regs);
224207 if (cregs)
225− show_callee_regs(cregs);
208+ print_regs_callee(cregs);
226209
227210 preempt_disable();
228211 }
arch/arc/kernel/unwind.c+3−3
@@ -572,7 +572,7 @@ static unsigned long read_pointer(const u8 **pLoc, const void *end, · 571 unmodified lines
572572 #else
573573 BUILD_BUG_ON(sizeof(u32) != sizeof(value));
574574 #endif
575− /* Fall through */
575+ fallthrough;
576576 case DW_EH_PE_native:
577577 if (end < (const void *)(ptr.pul + 1))
578578 return 0;
@@ -827,7 +827,7 @@ static int processCFI(const u8 *start, const u8 *end, unsigned long targetLoc, · 248 unmodified lines
827827 case DW_CFA_def_cfa:
828828 state->cfa.reg = get_uleb128(&ptr.p8, end);
829829 unw_debug("cfa_def_cfa: r%lu ", state->cfa.reg);
830− /* fall through */
830+ fallthrough;
831831 case DW_CFA_def_cfa_offset:
832832 state->cfa.offs = get_uleb128(&ptr.p8, end);
833833 unw_debug("cfa_def_cfa_offset: 0x%lx ",
@@ -835,7 +835,7 @@ static int processCFI(const u8 *start, const u8 *end, unsigned long targetLoc, · 1 unmodified line
835835 break;
836836 case DW_CFA_def_cfa_sf:
837837 state->cfa.reg = get_uleb128(&ptr.p8, end);
838− /* fall through */
838+ fallthrough;
839839 case DW_CFA_def_cfa_offset_sf:
840840 state->cfa.offs = get_sleb128(&ptr.p8, end)
841841 * state->dataAlign;
arch/arc/mm/init.c+16−11
@@ -26,8 +26,8 @@ static unsigned long low_mem_sz; · 25 unmodified lines
2626
2727 #ifdef CONFIG_HIGHMEM
2828 static unsigned long min_high_pfn, max_high_pfn;
29−static u64 high_mem_start;
30−static u64 high_mem_sz;
29+static phys_addr_t high_mem_start;
30+static phys_addr_t high_mem_sz;
3131 #endif
3232
3333 #ifdef CONFIG_DISCONTIGMEM
@@ -69,6 +69,7 @@ void __init early_init_dt_add_memory_arch(u64 base, u64 size) · 35 unmodified lines
6969 high_mem_sz = size;
7070 in_use = 1;
7171 memblock_add_node(base, size, 1);
72+ memblock_reserve(base, size);
7273 #endif
7374 }
7475
@@ -157,7 +158,7 @@ void __init setup_arch_memory(void) · 82 unmodified lines
157158 min_high_pfn = PFN_DOWN(high_mem_start);
158159 max_high_pfn = PFN_DOWN(high_mem_start + high_mem_sz);
159160
160− max_zone_pfn[ZONE_HIGHMEM] = max_high_pfn;
161+ max_zone_pfn[ZONE_HIGHMEM] = min_low_pfn;
161162
162163 high_memory = (void *)(min_high_pfn << PAGE_SHIFT);
163164 kmap_init();
@@ -166,22 +167,26 @@ void __init setup_arch_memory(void) · 2 unmodified lines
166167 free_area_init(max_zone_pfn);
167168 }
168169
169−/*
170− * mem_init - initializes memory
171− *
172− * Frees up bootmem
173− * Calculates and displays memory available/used
174− */
175−void __init mem_init(void)
170+static void __init highmem_init(void)
176171 {
177172 #ifdef CONFIG_HIGHMEM
178173 unsigned long tmp;
179174
180− reset_all_zones_managed_pages();
175+ memblock_free(high_mem_start, high_mem_sz);
181176 for (tmp = min_high_pfn; tmp < max_high_pfn; tmp++)
182177 free_highmem_page(pfn_to_page(tmp));
183178 #endif
179+}
184180
181+/*
182+ * mem_init - initializes memory
183+ *
184+ * Frees up bootmem
185+ * Calculates and displays memory available/used
186+ */
187+void __init mem_init(void)
188+{
185189 memblock_free_all();
190+ highmem_init();
186191 mem_init_print_info(NULL);
187192 }
arch/arc/plat-eznps/include/plat/ctop.h+0−1
@@ -33,7 +33,6 @@ · 32 unmodified lines
3333 #define CTOP_AUX_DPC (CTOP_AUX_BASE + 0x02C)
3434 #define CTOP_AUX_LPC (CTOP_AUX_BASE + 0x030)
3535 #define CTOP_AUX_EFLAGS (CTOP_AUX_BASE + 0x080)
36−#define CTOP_AUX_IACK (CTOP_AUX_BASE + 0x088)
3736 #define CTOP_AUX_GPA1 (CTOP_AUX_BASE + 0x08C)
3837 #define CTOP_AUX_UDMC (CTOP_AUX_BASE + 0x300)
3938
arch/arm/kernel/hw_breakpoint.c+5−5
@@ -547,7 +547,7 @@ static int arch_build_bp_info(struct perf_event *bp, · 546 unmodified lines
547547 if ((hw->ctrl.type != ARM_BREAKPOINT_EXECUTE)
548548 && max_watchpoint_len >= 8)
549549 break;
550− /* Else, fall through */
550+ fallthrough;
551551 default:
552552 return -EINVAL;
553553 }
@@ -612,12 +612,12 @@ int hw_breakpoint_arch_parse(struct perf_event *bp, · 58 unmodified lines
612612 /* Allow halfword watchpoints and breakpoints. */
613613 if (hw->ctrl.len == ARM_BREAKPOINT_LEN_2)
614614 break;
615− /* Else, fall through */
615+ fallthrough;
616616 case 3:
617617 /* Allow single byte watchpoint. */
618618 if (hw->ctrl.len == ARM_BREAKPOINT_LEN_1)
619619 break;
620− /* Else, fall through */
620+ fallthrough;
621621 default:
622622 ret = -EINVAL;
623623 goto out;
@@ -884,7 +884,7 @@ static int hw_breakpoint_pending(unsigned long addr, unsigned int fsr, · 260 unmodified lines
884884 break;
885885 case ARM_ENTRY_ASYNC_WATCHPOINT:
886886 WARN(1, "Asynchronous watchpoint exception taken. Debugging results may be unreliable\n");
887− /* Fall through */
887+ fallthrough;
888888 case ARM_ENTRY_SYNC_WATCHPOINT:
889889 watchpoint_handler(addr, fsr, regs);
890890 break;
@@ -933,7 +933,7 @@ static bool core_has_os_save_restore(void) · 42 unmodified lines
933933 ARM_DBG_READ(c1, c1, 4, oslsr);
934934 if (oslsr & ARM_OSLSR_OSLM0)
935935 return true;
936− /* Else, fall through */
936+ fallthrough;
937937 default:
938938 return false;
939939 }
arch/arm/kernel/signal.c+1−1
@@ -596,7 +596,7 @@ static int do_signal(struct pt_regs *regs, int syscall) · 595 unmodified lines
596596 switch (retval) {
597597 case -ERESTART_RESTARTBLOCK:
598598 restart -= 2;
599− /* Fall through */
599+ fallthrough;
600600 case -ERESTARTNOHAND:
601601 case -ERESTARTSYS:
602602 case -ERESTARTNOINTR:
arch/arm/mach-ep93xx/crunch.c+1−1
@@ -49,7 +49,7 @@ static int crunch_do(struct notifier_block *self, unsigned long cmd, void *t) · 48 unmodified lines
4949 * FALLTHROUGH: Ensure we don't try to overwrite our newly
5050 * initialised state information on the first fault.
5151 */
52− /* Fall through */
52+ fallthrough;
5353
5454 case THREAD_NOTIFY_EXIT:
5555 crunch_task_release(thread);
arch/arm/mach-mmp/pm-mmp2.c+4−4
@@ -123,19 +123,19 @@ void mmp2_pm_enter_lowpower_mode(int state) · 122 unmodified lines
123123 case POWER_MODE_SYS_SLEEP:
124124 apcr |= MPMU_PCR_PJ_SLPEN; /* set the SLPEN bit */
125125 apcr |= MPMU_PCR_PJ_VCTCXOSD; /* set VCTCXOSD */
126− /* fall through */
126+ fallthrough;
127127 case POWER_MODE_CHIP_SLEEP:
128128 apcr |= MPMU_PCR_PJ_SLPEN;
129− /* fall through */
129+ fallthrough;
130130 case POWER_MODE_APPS_SLEEP:
131131 apcr |= MPMU_PCR_PJ_APBSD; /* set APBSD */
132− /* fall through */
132+ fallthrough;
133133 case POWER_MODE_APPS_IDLE:
134134 apcr |= MPMU_PCR_PJ_AXISD; /* set AXISDD bit */
135135 apcr |= MPMU_PCR_PJ_DDRCORSD; /* set DDRCORSD bit */
136136 idle_cfg |= APMU_PJ_IDLE_CFG_PJ_PWRDWN; /* PJ power down */
137137 apcr |= MPMU_PCR_PJ_SPSD;
138− /* fall through */
138+ fallthrough;
139139 case POWER_MODE_CORE_EXTIDLE:
140140 idle_cfg |= APMU_PJ_IDLE_CFG_PJ_IDLE; /* set the IDLE bit */
141141 idle_cfg &= ~APMU_PJ_IDLE_CFG_ISO_MODE_CNTRL_MASK;
arch/arm/mach-mmp/pm-pxa910.c+5−5
@@ -145,23 +145,23 @@ void pxa910_pm_enter_lowpower_mode(int state) · 144 unmodified lines
145145 case POWER_MODE_UDR:
146146 /* only shutdown APB in UDR */
147147 apcr |= MPMU_APCR_STBYEN | MPMU_APCR_APBSD;
148− /* fall through */
148+ fallthrough;
149149 case POWER_MODE_SYS_SLEEP:
150150 apcr |= MPMU_APCR_SLPEN; /* set the SLPEN bit */
151151 apcr |= MPMU_APCR_VCTCXOSD; /* set VCTCXOSD */
152− /* fall through */
152+ fallthrough;
153153 case POWER_MODE_APPS_SLEEP:
154154 apcr |= MPMU_APCR_DDRCORSD; /* set DDRCORSD */
155− /* fall through */
155+ fallthrough;
156156 case POWER_MODE_APPS_IDLE:
157157 apcr |= MPMU_APCR_AXISD; /* set AXISDD bit */
158− /* fall through */
158+ fallthrough;
159159 case POWER_MODE_CORE_EXTIDLE:
160160 idle_cfg |= APMU_MOH_IDLE_CFG_MOH_IDLE;
161161 idle_cfg |= APMU_MOH_IDLE_CFG_MOH_PWRDWN;
162162 idle_cfg |= APMU_MOH_IDLE_CFG_MOH_PWR_SW(3)
163163 | APMU_MOH_IDLE_CFG_MOH_L2_PWR_SW(3);
164− /* fall through */
164+ fallthrough;
165165 case POWER_MODE_CORE_INTIDLE:
166166 break;
167167 }
arch/arm/mach-omap2/id.c+0−8
@@ -396,7 +396,6 @@ void __init omap3xxx_check_revision(void) · 395 unmodified lines
396396 cpu_rev = "3.1";
397397 break;
398398 case 7:
399− /* FALLTHROUGH */
400399 default:
401400 /* Use the latest known revision as default */
402401 omap_revision = OMAP3430_REV_ES3_1_2;
@@ -416,7 +415,6 @@ void __init omap3xxx_check_revision(void) · 13 unmodified lines
416415 cpu_rev = "1.0";
417416 break;
418417 case 1:
419− /* FALLTHROUGH */
420418 default:
421419 omap_revision = AM35XX_REV_ES1_1;
422420 cpu_rev = "1.1";
@@ -435,7 +433,6 @@ void __init omap3xxx_check_revision(void) · 12 unmodified lines
435433 cpu_rev = "1.1";
436434 break;
437435 case 2:
438− /* FALLTHROUGH */
439436 default:
440437 omap_revision = OMAP3630_REV_ES1_2;
441438 cpu_rev = "1.2";
@@ -456,7 +453,6 @@ void __init omap3xxx_check_revision(void) · 14 unmodified lines
456453 cpu_rev = "2.0";
457454 break;
458455 case 3:
459− /* FALLTHROUGH */
460456 default:
461457 omap_revision = TI8168_REV_ES2_1;
462458 cpu_rev = "2.1";
@@ -473,7 +469,6 @@ void __init omap3xxx_check_revision(void) · 10 unmodified lines
473469 cpu_rev = "2.0";
474470 break;
475471 case 2:
476− /* FALLTHROUGH */
477472 default:
478473 omap_revision = AM335X_REV_ES2_1;
479474 cpu_rev = "2.1";
@@ -491,7 +486,6 @@ void __init omap3xxx_check_revision(void) · 11 unmodified lines
491486 cpu_rev = "1.1";
492487 break;
493488 case 2:
494− /* FALLTHROUGH */
495489 default:
496490 omap_revision = AM437X_REV_ES1_2;
497491 cpu_rev = "1.2";
@@ -502,7 +496,6 @@ void __init omap3xxx_check_revision(void) · 4 unmodified lines
502496 case 0xb968:
503497 switch (rev) {
504498 case 0:
505− /* FALLTHROUGH */
506499 case 1:
507500 omap_revision = TI8148_REV_ES1_0;
508501 cpu_rev = "1.0";
@@ -512,7 +505,6 @@ void __init omap3xxx_check_revision(void) · 3 unmodified lines
512505 cpu_rev = "2.0";
513506 break;
514507 case 3:
515− /* FALLTHROUGH */
516508 default:
517509 omap_revision = TI8148_REV_ES2_1;
518510 cpu_rev = "2.1";
arch/arm/mach-omap2/omap_device.c+1−1
@@ -240,7 +240,7 @@ static int _omap_device_notifier_call(struct notifier_block *nb, · 239 unmodified lines
240240 if (pdev->dev.of_node)
241241 omap_device_build_from_dt(pdev);
242242 omap_auxdata_legacy_init(dev);
243− /* fall through */
243+ fallthrough;
244244 default:
245245 od = to_omap_device(pdev);
246246 if (od)
arch/arm/mach-omap2/pm34xx.c+0−4
@@ -298,11 +298,7 @@ static void omap3_pm_idle(void) · 297 unmodified lines
298298 if (omap_irq_pending())
299299 return;
300300
301− trace_cpu_idle_rcuidle(1, smp_processor_id());
302−
303301 omap_sram_idle();
304−
305− trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id());
306302 }
307303
308304 #ifdef CONFIG_SUSPEND
arch/arm/mach-orion5x/dns323-setup.c+1−1
@@ -624,7 +624,7 @@ static void __init dns323_init(void) · 623 unmodified lines
624624 dns323ab_leds[0].active_low = 1;
625625 gpio_request(DNS323_GPIO_LED_POWER1, "Power Led Enable");
626626 gpio_direction_output(DNS323_GPIO_LED_POWER1, 0);
627− /* Fall through */
627+ fallthrough;
628628 case DNS323_REV_B1:
629629 i2c_register_board_info(0, dns323ab_i2c_devices,
630630 ARRAY_SIZE(dns323ab_i2c_devices));
arch/arm/mach-rpc/riscpc.c+1−1
@@ -46,7 +46,7 @@ static int __init parse_tag_acorn(const struct tag *tag) · 45 unmodified lines
4646 switch (tag->u.acorn.vram_pages) {
4747 case 512:
4848 vram_size += PAGE_SIZE * 256;
49− /* Fall through - ??? */
49+ fallthrough; /* ??? */
5050 case 256:
5151 vram_size += PAGE_SIZE * 256;
5252 default:
arch/arm/mach-tegra/reset.c+1−1
@@ -70,7 +70,7 @@ static void __init tegra_cpu_reset_handler_enable(void) · 69 unmodified lines
7070 switch (err) {
7171 case -ENOSYS:
7272 tegra_cpu_reset_handler_set(reset_address);
73− /* fall through */
73+ fallthrough;
7474 case 0:
7575 is_enabled = true;
7676 break;
arch/arm/mm/alignment.c+2−2
@@ -694,7 +694,7 @@ thumb2arm(u16 tinstr) · 693 unmodified lines
694694 return subset[(L<<1) | ((tinstr & (1<<8)) >> 8)] |
695695 (tinstr & 255); /* register_list */
696696 }
697− /* Else, fall through - for illegal instruction case */
697+ fallthrough; /* for illegal instruction case */
698698
699699 default:
700700 return BAD_INSTR;
@@ -750,7 +750,7 @@ do_alignment_t32_to_handler(u32 *pinstr, struct pt_regs *regs, · 49 unmodified lines
750750 case 0xe8e0:
751751 case 0xe9e0:
752752 poffset->un = (tinst2 & 0xff) << 2;
753− /* Fall through */
753+ fallthrough;
754754
755755 case 0xe940:
756756 case 0xe9c0:
arch/arm/mm/proc-v7-bugs.c+1−1
@@ -71,7 +71,7 @@ static void cpu_v7_spectre_init(void) · 70 unmodified lines
7171 /* Other ARM CPUs require no workaround */
7272 if (read_cpuid_implementor() == ARM_CPU_IMP_ARM)
7373 break;
74− /* fallthrough */
74+ fallthrough;
7575 /* Cortex A57/A72 require firmware workaround */
7676 case ARM_CPU_PART_CORTEX_A57:
7777 case ARM_CPU_PART_CORTEX_A72: {
arch/arm/plat-omap/dma.c+3−3
@@ -309,14 +309,14 @@ void omap_set_dma_src_burst_mode(int lch, enum omap_dma_burst_mode burst_mode) · 308 unmodified lines
309309 * not supported by current hardware on OMAP1
310310 * w |= (0x03 << 7);
311311 */
312− /* fall through */
312+ fallthrough;
313313 case OMAP_DMA_DATA_BURST_16:
314314 if (dma_omap2plus()) {
315315 burst = 0x3;
316316 break;
317317 }
318318 /* OMAP1 don't support burst 16 */
319− /* fall through */
319+ fallthrough;
320320 default:
321321 BUG();
322322 }
@@ -393,7 +393,7 @@ void omap_set_dma_dest_burst_mode(int lch, enum omap_dma_burst_mode burst_mode) · 70 unmodified lines
393393 break;
394394 }
395395 /* OMAP1 don't support burst 16 */
396− /* fall through */
396+ fallthrough;
397397 default:
398398 printk(KERN_ERR "Invalid DMA burst mode\n");
399399 BUG();
arch/arm/probes/decode.c+1−1
@@ -307,7 +307,7 @@ static bool __kprobes decode_regs(probes_opcode_t *pinsn, u32 regs, bool modify) · 306 unmodified lines
307307 case REG_TYPE_NOPCWB:
308308 if (!is_writeback(insn))
309309 break; /* No writeback, so any register is OK */
310− /* fall through... */
310+ fallthrough;
311311 case REG_TYPE_NOPC:
312312 case REG_TYPE_NOPCX:
313313 /* Reject PC (R15) */
arch/arm/probes/kprobes/core.c+1−1
@@ -280,7 +280,7 @@ void __kprobes kprobe_handler(struct pt_regs *regs) · 279 unmodified lines
280280 /* A nested probe was hit in FIQ, it is a BUG */
281281 pr_warn("Unrecoverable kprobe detected.\n");
282282 dump_kprobe(p);
283− /* fall through */
283+ fallthrough;
284284 default:
285285 /* impossible cases */
286286 BUG();
arch/arm64/Makefile+10−3
@@ -82,8 +82,8 @@ endif · 81 unmodified lines
8282 # compiler to generate them and consequently to break the single image contract
8383 # we pass it only to the assembler. This option is utilized only in case of non
8484 # integrated assemblers.
85−ifneq ($(CONFIG_AS_HAS_ARMV8_4), y)
86−branch-prot-flags-$(CONFIG_AS_HAS_PAC) += -Wa,-march=armv8.3-a
85+ifeq ($(CONFIG_AS_HAS_PAC), y)
86+asm-arch := armv8.3-a
8787 endif
8888 endif
8989
@@ -91,7 +91,12 @@ KBUILD_CFLAGS += $(branch-prot-flags-y) · 1 unmodified line
9191
9292 ifeq ($(CONFIG_AS_HAS_ARMV8_4), y)
9393 # make sure to pass the newest target architecture to -march.
94−KBUILD_CFLAGS += -Wa,-march=armv8.4-a
94+asm-arch := armv8.4-a
95+endif
96+
97+ifdef asm-arch
98+KBUILD_CFLAGS += -Wa,-march=$(asm-arch) \
99+ -DARM64_ASM_ARCH='"$(asm-arch)"'
95100 endif
96101
97102 ifeq ($(CONFIG_SHADOW_CALL_STACK), y)
@@ -165,6 +170,8 @@ zinstall install: · 67 unmodified lines
165170 PHONY += vdso_install
166171 vdso_install:
167172 $(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso $@
173+ $(if $(CONFIG_COMPAT_VDSO), \
174+ $(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso32 $@)
168175
169176 # We use MRPROPER_FILES and CLEAN_FILES now
170177 archclean:
arch/arm64/boot/dts/mediatek/mt7622.dtsi+2−0
@@ -686,6 +686,8 @@ · 685 unmodified lines
686686 clocks = <&pericfg CLK_PERI_MSDC30_0_PD>,
687687 <&topckgen CLK_TOP_MSDC50_0_SEL>;
688688 clock-names = "source", "hclk";
689+ resets = <&pericfg MT7622_PERI_MSDC0_SW_RST>;
690+ reset-names = "hrst";
689691 status = "disabled";
690692 };
691693
arch/arm64/boot/dts/nvidia/tegra186.dtsi+12−8
@@ -337,8 +337,9 @@ · 336 unmodified lines
337337 compatible = "nvidia,tegra186-sdhci";
338338 reg = <0x0 0x03400000 0x0 0x10000>;
339339 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
340− clocks = <&bpmp TEGRA186_CLK_SDMMC1>;
341− clock-names = "sdhci";
340+ clocks = <&bpmp TEGRA186_CLK_SDMMC1>,
341+ <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
342+ clock-names = "sdhci", "tmclk";
342343 resets = <&bpmp TEGRA186_RESET_SDMMC1>;
343344 reset-names = "sdhci";
344345 interconnects = <&mc TEGRA186_MEMORY_CLIENT_SDMMCRA &emc>,
@@ -366,8 +367,9 @@ · 21 unmodified lines
366367 compatible = "nvidia,tegra186-sdhci";
367368 reg = <0x0 0x03420000 0x0 0x10000>;
368369 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
369− clocks = <&bpmp TEGRA186_CLK_SDMMC2>;
370− clock-names = "sdhci";
370+ clocks = <&bpmp TEGRA186_CLK_SDMMC2>,
371+ <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
372+ clock-names = "sdhci", "tmclk";
371373 resets = <&bpmp TEGRA186_RESET_SDMMC2>;
372374 reset-names = "sdhci";
373375 interconnects = <&mc TEGRA186_MEMORY_CLIENT_SDMMCRAA &emc>,
@@ -390,8 +392,9 @@ · 16 unmodified lines
390392 compatible = "nvidia,tegra186-sdhci";
391393 reg = <0x0 0x03440000 0x0 0x10000>;
392394 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
393− clocks = <&bpmp TEGRA186_CLK_SDMMC3>;
394− clock-names = "sdhci";
395+ clocks = <&bpmp TEGRA186_CLK_SDMMC3>,
396+ <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
397+ clock-names = "sdhci", "tmclk";
395398 resets = <&bpmp TEGRA186_RESET_SDMMC3>;
396399 reset-names = "sdhci";
397400 interconnects = <&mc TEGRA186_MEMORY_CLIENT_SDMMCR &emc>,
@@ -416,8 +419,9 @@ · 18 unmodified lines
416419 compatible = "nvidia,tegra186-sdhci";
417420 reg = <0x0 0x03460000 0x0 0x10000>;
418421 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
419− clocks = <&bpmp TEGRA186_CLK_SDMMC4>;
420− clock-names = "sdhci";
422+ clocks = <&bpmp TEGRA186_CLK_SDMMC4>,
423+ <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
424+ clock-names = "sdhci", "tmclk";
421425 assigned-clocks = <&bpmp TEGRA186_CLK_SDMMC4>,
422426 <&bpmp TEGRA186_CLK_PLLC4_VCO>;
423427 assigned-clock-parents = <&bpmp TEGRA186_CLK_PLLC4_VCO>;
arch/arm64/boot/dts/nvidia/tegra194.dtsi+9−6
@@ -460,8 +460,9 @@ · 459 unmodified lines
460460 compatible = "nvidia,tegra194-sdhci";
461461 reg = <0x03400000 0x10000>;
462462 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
463− clocks = <&bpmp TEGRA194_CLK_SDMMC1>;
464− clock-names = "sdhci";
463+ clocks = <&bpmp TEGRA194_CLK_SDMMC1>,
464+ <&bpmp TEGRA194_CLK_SDMMC_LEGACY_TM>;
465+ clock-names = "sdhci", "tmclk";
465466 resets = <&bpmp TEGRA194_RESET_SDMMC1>;
466467 reset-names = "sdhci";
467468 interconnects = <&mc TEGRA194_MEMORY_CLIENT_SDMMCRA &emc>,
@@ -485,8 +486,9 @@ · 17 unmodified lines
485486 compatible = "nvidia,tegra194-sdhci";
486487 reg = <0x03440000 0x10000>;
487488 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
488− clocks = <&bpmp TEGRA194_CLK_SDMMC3>;
489− clock-names = "sdhci";
489+ clocks = <&bpmp TEGRA194_CLK_SDMMC3>,
490+ <&bpmp TEGRA194_CLK_SDMMC_LEGACY_TM>;
491+ clock-names = "sdhci", "tmclk";
490492 resets = <&bpmp TEGRA194_RESET_SDMMC3>;
491493 reset-names = "sdhci";
492494 interconnects = <&mc TEGRA194_MEMORY_CLIENT_SDMMCR &emc>,
@@ -511,8 +513,9 @@ · 18 unmodified lines
511513 compatible = "nvidia,tegra194-sdhci";
512514 reg = <0x03460000 0x10000>;
513515 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
514− clocks = <&bpmp TEGRA194_CLK_SDMMC4>;
515− clock-names = "sdhci";
516+ clocks = <&bpmp TEGRA194_CLK_SDMMC4>,
517+ <&bpmp TEGRA194_CLK_SDMMC_LEGACY_TM>;
518+ clock-names = "sdhci", "tmclk";
516519 assigned-clocks = <&bpmp TEGRA194_CLK_SDMMC4>,
517520 <&bpmp TEGRA194_CLK_PLLC4>;
518521 assigned-clock-parents =
arch/arm64/boot/dts/nvidia/tegra210.dtsi+12−8
@@ -1194,8 +1194,9 @@ · 1193 unmodified lines
11941194 compatible = "nvidia,tegra210-sdhci";
11951195 reg = <0x0 0x700b0000 0x0 0x200>;
11961196 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1197− clocks = <&tegra_car TEGRA210_CLK_SDMMC1>;
1198− clock-names = "sdhci";
1197+ clocks = <&tegra_car TEGRA210_CLK_SDMMC1>,
1198+ <&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
1199+ clock-names = "sdhci", "tmclk";
11991200 resets = <&tegra_car 14>;
12001201 reset-names = "sdhci";
12011202 pinctrl-names = "sdmmc-3v3", "sdmmc-1v8",
@@ -1222,8 +1223,9 @@ · 20 unmodified lines
12221223 compatible = "nvidia,tegra210-sdhci";
12231224 reg = <0x0 0x700b0200 0x0 0x200>;
12241225 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
1225− clocks = <&tegra_car TEGRA210_CLK_SDMMC2>;
1226− clock-names = "sdhci";
1226+ clocks = <&tegra_car TEGRA210_CLK_SDMMC2>,
1227+ <&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
1228+ clock-names = "sdhci", "tmclk";
12271229 resets = <&tegra_car 9>;
12281230 reset-names = "sdhci";
12291231 pinctrl-names = "sdmmc-1v8-drv";
@@ -1239,8 +1241,9 @@ · 9 unmodified lines
12391241 compatible = "nvidia,tegra210-sdhci";
12401242 reg = <0x0 0x700b0400 0x0 0x200>;
12411243 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
1242− clocks = <&tegra_car TEGRA210_CLK_SDMMC3>;
1243− clock-names = "sdhci";
1244+ clocks = <&tegra_car TEGRA210_CLK_SDMMC3>,
1245+ <&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
1246+ clock-names = "sdhci", "tmclk";
12441247 resets = <&tegra_car 69>;
12451248 reset-names = "sdhci";
12461249 pinctrl-names = "sdmmc-3v3", "sdmmc-1v8",
@@ -1262,8 +1265,9 @@ · 15 unmodified lines
12621265 compatible = "nvidia,tegra210-sdhci";
12631266 reg = <0x0 0x700b0600 0x0 0x200>;
12641267 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
1265− clocks = <&tegra_car TEGRA210_CLK_SDMMC4>;
1266− clock-names = "sdhci";
1268+ clocks = <&tegra_car TEGRA210_CLK_SDMMC4>,
1269+ <&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
1270+ clock-names = "sdhci", "tmclk";
12671271 resets = <&tegra_car 15>;
12681272 reset-names = "sdhci";
12691273 pinctrl-names = "sdmmc-3v3-drv", "sdmmc-1v8-drv";
arch/arm64/boot/dts/ti/k3-am65-main.dtsi+17−19
@@ -417,10 +417,10 @@ · 416 unmodified lines
417417 ti,intr-trigger-type = <1>;
418418 interrupt-controller;
419419 interrupt-parent = <&gic500>;
420− #interrupt-cells = <2>;
420+ #interrupt-cells = <1>;
421421 ti,sci = <&dmsc>;
422− ti,sci-dst-id = <56>;
423− ti,sci-rm-range-girq = <0x1>;
422+ ti,sci-dev-id = <100>;
423+ ti,interrupt-ranges = <0 392 32>;
424424 };
425425
426426 main_navss {
@@ -438,10 +438,11 @@ · 11 unmodified lines
438438 ti,intr-trigger-type = <4>;
439439 interrupt-controller;
440440 interrupt-parent = <&gic500>;
441− #interrupt-cells = <2>;
441+ #interrupt-cells = <1>;
442442 ti,sci = <&dmsc>;
443− ti,sci-dst-id = <56>;
444− ti,sci-rm-range-girq = <0x0>, <0x2>;
443+ ti,sci-dev-id = <182>;
444+ ti,interrupt-ranges = <0 64 64>,
445+ <64 448 64>;
445446 };
446447
447448 inta_main_udmass: interrupt-controller@33d00000 {
@@ -452,8 +453,7 @@ · 4 unmodified lines
452453 msi-controller;
453454 ti,sci = <&dmsc>;
454455 ti,sci-dev-id = <179>;
455− ti,sci-rm-range-vint = <0x0>;
456− ti,sci-rm-range-global-event = <0x1>;
456+ ti,interrupt-ranges = <0 0 256>;
457457 };
458458
459459 secure_proxy_main: mailbox@32c00000 {
@@ -589,7 +589,7 @@ · 129 unmodified lines
589589 <0x0 0x33000000 0x0 0x40000>;
590590 reg-names = "rt", "fifos", "proxy_gcfg", "proxy_target";
591591 ti,num-rings = <818>;
592− ti,sci-rm-range-gp-rings = <0x2>; /* GP ring range */
592+ ti,sci-rm-range-gp-rings = <0x1>; /* GP ring range */
593593 ti,dma-ring-reset-quirk;
594594 ti,sci = <&dmsc>;
595595 ti,sci-dev-id = <187>;
@@ -609,11 +609,11 @@ · 13 unmodified lines
609609 ti,sci-dev-id = <188>;
610610 ti,ringacc = <&ringacc>;
611611
612− ti,sci-rm-range-tchan = <0x1>, /* TX_HCHAN */
613− <0x2>; /* TX_CHAN */
614− ti,sci-rm-range-rchan = <0x4>, /* RX_HCHAN */
615− <0x5>; /* RX_CHAN */
616− ti,sci-rm-range-rflow = <0x6>; /* GP RFLOW */
612+ ti,sci-rm-range-tchan = <0xf>, /* TX_HCHAN */
613+ <0xd>; /* TX_CHAN */
614+ ti,sci-rm-range-rchan = <0xb>, /* RX_HCHAN */
615+ <0xa>; /* RX_CHAN */
616+ ti,sci-rm-range-rflow = <0x0>; /* GP RFLOW */
617617 };
618618
619619 cpts@310d0000 {
@@ -622,7 +622,7 @@ · 2 unmodified lines
622622 reg-names = "cpts";
623623 clocks = <&main_cpts_mux>;
624624 clock-names = "cpts";
625− interrupts-extended = <&intr_main_navss 163 0>;
625+ interrupts-extended = <&intr_main_navss 391>;
626626 interrupt-names = "cpts";
627627 ti,cpts-periodic-outputs = <6>;
628628 ti,cpts-ext-ts-inputs = <8>;
@@ -645,8 +645,7 @@ · 16 unmodified lines
645645 gpio-controller;
646646 #gpio-cells = <2>;
647647 interrupt-parent = <&intr_main_gpio>;
648− interrupts = <57 256>, <57 257>, <57 258>, <57 259>, <57 260>,
649− <57 261>;
648+ interrupts = <192>, <193>, <194>, <195>, <196>, <197>;
650649 interrupt-controller;
651650 #interrupt-cells = <2>;
652651 ti,ngpio = <96>;
@@ -661,8 +660,7 @@ · 8 unmodified lines
661660 gpio-controller;
662661 #gpio-cells = <2>;
663662 interrupt-parent = <&intr_main_gpio>;
664− interrupts = <58 256>, <58 257>, <58 258>, <58 259>, <58 260>,
665− <58 261>;
663+ interrupts = <200>, <201>, <202>, <203>, <204>, <205>;
666664 interrupt-controller;
667665 #interrupt-cells = <2>;
668666 ti,ngpio = <90>;
arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi+6−6
@@ -134,7 +134,7 @@ · 133 unmodified lines
134134 <0x0 0x2a500000 0x0 0x40000>;
135135 reg-names = "rt", "fifos", "proxy_gcfg", "proxy_target";
136136 ti,num-rings = <286>;
137− ti,sci-rm-range-gp-rings = <0x2>; /* GP ring range */
137+ ti,sci-rm-range-gp-rings = <0x1>; /* GP ring range */
138138 ti,dma-ring-reset-quirk;
139139 ti,sci = <&dmsc>;
140140 ti,sci-dev-id = <195>;
@@ -154,11 +154,11 @@ · 13 unmodified lines
154154 ti,sci-dev-id = <194>;
155155 ti,ringacc = <&mcu_ringacc>;
156156
157− ti,sci-rm-range-tchan = <0x1>, /* TX_HCHAN */
158− <0x2>; /* TX_CHAN */
159− ti,sci-rm-range-rchan = <0x3>, /* RX_HCHAN */
160− <0x4>; /* RX_CHAN */
161− ti,sci-rm-range-rflow = <0x5>; /* GP RFLOW */
157+ ti,sci-rm-range-tchan = <0xf>, /* TX_HCHAN */
158+ <0xd>; /* TX_CHAN */
159+ ti,sci-rm-range-rchan = <0xb>, /* RX_HCHAN */
160+ <0xa>; /* RX_CHAN */
161+ ti,sci-rm-range-rflow = <0x0>; /* GP RFLOW */
162162 };
163163 };
164164
arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi+4−4
@@ -74,10 +74,10 @@ · 73 unmodified lines
7474 ti,intr-trigger-type = <1>;
7575 interrupt-controller;
7676 interrupt-parent = <&gic500>;
77− #interrupt-cells = <2>;
77+ #interrupt-cells = <1>;
7878 ti,sci = <&dmsc>;
79− ti,sci-dst-id = <56>;
80− ti,sci-rm-range-girq = <0x4>;
79+ ti,sci-dev-id = <156>;
80+ ti,interrupt-ranges = <0 712 16>;
8181 };
8282
8383 wkup_gpio0: wkup_gpio0@42110000 {
@@ -86,7 +86,7 @@ · 2 unmodified lines
8686 gpio-controller;
8787 #gpio-cells = <2>;
8888 interrupt-parent = <&intr_wkup_gpio>;
89− interrupts = <59 128>, <59 129>, <59 130>, <59 131>;
89+ interrupts = <60>, <61>, <62>, <63>;
9090 interrupt-controller;
9191 #interrupt-cells = <2>;
9292 ti,ngpio = <56>;
arch/arm64/boot/dts/ti/k3-am654-base-board.dts+2−2
@@ -384,7 +384,7 @@ · 383 unmodified lines
384384 };
385385
386386 &mailbox0_cluster0 {
387− interrupts = <164 0>;
387+ interrupts = <436>;
388388
389389 mbox_mcu_r5fss0_core0: mbox-mcu-r5fss0-core0 {
390390 ti,mbox-tx = <1 0 0>;
@@ -393,7 +393,7 @@ · 2 unmodified lines
393393 };
394394
395395 &mailbox0_cluster1 {
396− interrupts = <165 0>;
396+ interrupts = <432>;
397397
398398 mbox_mcu_r5fss0_core1: mbox-mcu-r5fss0-core1 {
399399 ti,mbox-tx = <1 0 0>;
arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts+5−5
@@ -287,7 +287,7 @@ · 286 unmodified lines
287287 };
288288
289289 &mailbox0_cluster0 {
290− interrupts = <214 0>;
290+ interrupts = <436>;
291291
292292 mbox_mcu_r5fss0_core0: mbox-mcu-r5fss0-core0 {
293293 ti,mbox-rx = <0 0 0>;
@@ -301,7 +301,7 @@ · 7 unmodified lines
301301 };
302302
303303 &mailbox0_cluster1 {
304− interrupts = <215 0>;
304+ interrupts = <432>;
305305
306306 mbox_main_r5fss0_core0: mbox-main-r5fss0-core0 {
307307 ti,mbox-rx = <0 0 0>;
@@ -315,7 +315,7 @@ · 7 unmodified lines
315315 };
316316
317317 &mailbox0_cluster2 {
318− interrupts = <216 0>;
318+ interrupts = <428>;
319319
320320 mbox_main_r5fss1_core0: mbox-main-r5fss1-core0 {
321321 ti,mbox-rx = <0 0 0>;
@@ -329,7 +329,7 @@ · 7 unmodified lines
329329 };
330330
331331 &mailbox0_cluster3 {
332− interrupts = <217 0>;
332+ interrupts = <424>;
333333
334334 mbox_c66_0: mbox-c66-0 {
335335 ti,mbox-rx = <0 0 0>;
@@ -343,7 +343,7 @@ · 7 unmodified lines
343343 };
344344
345345 &mailbox0_cluster4 {
346− interrupts = <218 0>;
346+ interrupts = <420>;
347347
348348 mbox_c71_0: mbox-c71-0 {
349349 ti,mbox-rx = <0 0 0>;
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi+22−21
@@ -80,10 +80,10 @@ · 79 unmodified lines
8080 ti,intr-trigger-type = <1>;
8181 interrupt-controller;
8282 interrupt-parent = <&gic500>;
83− #interrupt-cells = <2>;
83+ #interrupt-cells = <1>;
8484 ti,sci = <&dmsc>;
85− ti,sci-dst-id = <14>;
86− ti,sci-rm-range-girq = <0x1>;
85+ ti,sci-dev-id = <131>;
86+ ti,interrupt-ranges = <8 392 56>;
8787 };
8888
8989 main_navss {
@@ -101,10 +101,12 @@ · 11 unmodified lines
101101 ti,intr-trigger-type = <4>;
102102 interrupt-controller;
103103 interrupt-parent = <&gic500>;
104− #interrupt-cells = <2>;
104+ #interrupt-cells = <1>;
105105 ti,sci = <&dmsc>;
106− ti,sci-dst-id = <14>;
107− ti,sci-rm-range-girq = <0>, <2>;
106+ ti,sci-dev-id = <213>;
107+ ti,interrupt-ranges = <0 64 64>,
108+ <64 448 64>,
109+ <128 672 64>;
108110 };
109111
110112 main_udmass_inta: interrupt-controller@33d00000 {
@@ -115,8 +117,7 @@ · 4 unmodified lines
115117 msi-controller;
116118 ti,sci = <&dmsc>;
117119 ti,sci-dev-id = <209>;
118− ti,sci-rm-range-vint = <0xa>;
119− ti,sci-rm-range-global-event = <0xd>;
120+ ti,interrupt-ranges = <0 0 256>;
120121 };
121122
122123 secure_proxy_main: mailbox@32c00000 {
@@ -296,7 +297,7 @@ · 173 unmodified lines
296297 reg-names = "cpts";
297298 clocks = <&k3_clks 201 1>;
298299 clock-names = "cpts";
299− interrupts-extended = <&main_navss_intr 201 0>;
300+ interrupts-extended = <&main_navss_intr 391>;
300301 interrupt-names = "cpts";
301302 ti,cpts-periodic-outputs = <6>;
302303 ti,cpts-ext-ts-inputs = <8>;
@@ -688,8 +689,8 @@ · 385 unmodified lines
688689 gpio-controller;
689690 #gpio-cells = <2>;
690691 interrupt-parent = <&main_gpio_intr>;
691− interrupts = <105 0>, <105 1>, <105 2>, <105 3>,
692− <105 4>, <105 5>, <105 6>, <105 7>;
692+ interrupts = <256>, <257>, <258>, <259>,
693+ <260>, <261>, <262>, <263>;
693694 interrupt-controller;
694695 #interrupt-cells = <2>;
695696 ti,ngpio = <128>;
@@ -705,7 +706,7 @@ · 9 unmodified lines
705706 gpio-controller;
706707 #gpio-cells = <2>;
707708 interrupt-parent = <&main_gpio_intr>;
708− interrupts = <106 0>, <106 1>, <106 2>;
709+ interrupts = <288>, <289>, <290>;
709710 interrupt-controller;
710711 #interrupt-cells = <2>;
711712 ti,ngpio = <36>;
@@ -721,8 +722,8 @@ · 9 unmodified lines
721722 gpio-controller;
722723 #gpio-cells = <2>;
723724 interrupt-parent = <&main_gpio_intr>;
724− interrupts = <107 0>, <107 1>, <107 2>, <107 3>,
725− <107 4>, <107 5>, <107 6>, <107 7>;
725+ interrupts = <264>, <265>, <266>, <267>,
726+ <268>, <269>, <270>, <271>;
726727 interrupt-controller;
727728 #interrupt-cells = <2>;
728729 ti,ngpio = <128>;
@@ -738,7 +739,7 @@ · 9 unmodified lines
738739 gpio-controller;
739740 #gpio-cells = <2>;
740741 interrupt-parent = <&main_gpio_intr>;
741− interrupts = <108 0>, <108 1>, <108 2>;
742+ interrupts = <292>, <293>, <294>;
742743 interrupt-controller;
743744 #interrupt-cells = <2>;
744745 ti,ngpio = <36>;
@@ -754,8 +755,8 @@ · 9 unmodified lines
754755 gpio-controller;
755756 #gpio-cells = <2>;
756757 interrupt-parent = <&main_gpio_intr>;
757− interrupts = <109 0>, <109 1>, <109 2>, <109 3>,
758− <109 4>, <109 5>, <109 6>, <109 7>;
758+ interrupts = <272>, <273>, <274>, <275>,
759+ <276>, <277>, <278>, <279>;
759760 interrupt-controller;
760761 #interrupt-cells = <2>;
761762 ti,ngpio = <128>;
@@ -771,7 +772,7 @@ · 9 unmodified lines
771772 gpio-controller;
772773 #gpio-cells = <2>;
773774 interrupt-parent = <&main_gpio_intr>;
774− interrupts = <110 0>, <110 1>, <110 2>;
775+ interrupts = <296>, <297>, <298>;
775776 interrupt-controller;
776777 #interrupt-cells = <2>;
777778 ti,ngpio = <36>;
@@ -787,8 +788,8 @@ · 9 unmodified lines
787788 gpio-controller;
788789 #gpio-cells = <2>;
789790 interrupt-parent = <&main_gpio_intr>;
790− interrupts = <111 0>, <111 1>, <111 2>, <111 3>,
791− <111 4>, <111 5>, <111 6>, <111 7>;
791+ interrupts = <280>, <281>, <282>, <283>,
792+ <284>, <285>, <286>, <287>;
792793 interrupt-controller;
793794 #interrupt-cells = <2>;
794795 ti,ngpio = <128>;
@@ -804,7 +805,7 @@ · 9 unmodified lines
804805 gpio-controller;
805806 #gpio-cells = <2>;
806807 interrupt-parent = <&main_gpio_intr>;
807− interrupts = <112 0>, <112 1>, <112 2>;
808+ interrupts = <300>, <301>, <302>;
808809 interrupt-controller;
809810 #interrupt-cells = <2>;
810811 ti,ngpio = <36>;
arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi+5−7
@@ -101,10 +101,10 @@ · 100 unmodified lines
101101 ti,intr-trigger-type = <1>;
102102 interrupt-controller;
103103 interrupt-parent = <&gic500>;
104− #interrupt-cells = <2>;
104+ #interrupt-cells = <1>;
105105 ti,sci = <&dmsc>;
106− ti,sci-dst-id = <14>;
107− ti,sci-rm-range-girq = <0x5>;
106+ ti,sci-dev-id = <137>;
107+ ti,interrupt-ranges = <16 960 16>;
108108 };
109109
110110 wkup_gpio0: gpio@42110000 {
@@ -113,8 +113,7 @@ · 2 unmodified lines
113113 gpio-controller;
114114 #gpio-cells = <2>;
115115 interrupt-parent = <&wkup_gpio_intr>;
116− interrupts = <113 0>, <113 1>, <113 2>,
117− <113 3>, <113 4>, <113 5>;
116+ interrupts = <103>, <104>, <105>, <106>, <107>, <108>;
118117 interrupt-controller;
119118 #interrupt-cells = <2>;
120119 ti,ngpio = <84>;
@@ -130,8 +129,7 @@ · 9 unmodified lines
130129 gpio-controller;
131130 #gpio-cells = <2>;
132131 interrupt-parent = <&wkup_gpio_intr>;
133− interrupts = <114 0>, <114 1>, <114 2>,
134− <114 3>, <114 4>, <114 5>;
132+ interrupts = <112>, <113>, <114>, <115>, <116>, <117>;
135133 interrupt-controller;
136134 #interrupt-cells = <2>;
137135 ti,ngpio = <84>;
arch/arm64/include/asm/compiler.h+6−0
@@ -2,6 +2,12 @@ · 1 unmodified line
22 #ifndef __ASM_COMPILER_H
33 #define __ASM_COMPILER_H
44
5+#ifdef ARM64_ASM_ARCH
6+#define ARM64_ASM_PREAMBLE ".arch " ARM64_ASM_ARCH "\n"
7+#else
8+#define ARM64_ASM_PREAMBLE
9+#endif
10+
511 /*
612 * The EL0/EL1 pointer bits used by a pointer authentication code.
713 * This is dependent on TBI0/TBI1 being enabled, or bits 63:56 would also apply.
arch/arm64/include/asm/irqflags.h+5−0
@@ -95,6 +95,11 @@ static inline int arch_irqs_disabled_flags(unsigned long flags) · 94 unmodified lines
9595 return res;
9696 }
9797
98+static inline int arch_irqs_disabled(void)
99+{
100+ return arch_irqs_disabled_flags(arch_local_save_flags());
101+}
102+
98103 static inline unsigned long arch_local_irq_save(void)
99104 {
100105 unsigned long flags;
arch/arm64/include/asm/kvm_arm.h+2−1
@@ -71,11 +71,12 @@ · 70 unmodified lines
7171 * IMO: Override CPSR.I and enable signaling with VI
7272 * FMO: Override CPSR.F and enable signaling with VF
7373 * SWIO: Turn set/way invalidates into set/way clean+invalidate
74+ * PTW: Take a stage2 fault if a stage1 walk steps in device memory
7475 */
7576 #define HCR_GUEST_FLAGS (HCR_TSC | HCR_TSW | HCR_TWE | HCR_TWI | HCR_VM | \
7677 HCR_BSU_IS | HCR_FB | HCR_TAC | \
7778 HCR_AMO | HCR_SWIO | HCR_TIDCP | HCR_RW | HCR_TLOR | \
78− HCR_FMO | HCR_IMO)
79+ HCR_FMO | HCR_IMO | HCR_PTW )
7980 #define HCR_VIRT_EXCP_MASK (HCR_VSE | HCR_VI | HCR_VF)
8081 #define HCR_HOST_NVHE_FLAGS (HCR_RW | HCR_API | HCR_APK)
8182 #define HCR_HOST_VHE_FLAGS (HCR_RW | HCR_TGE | HCR_E2H)
arch/arm64/include/asm/kvm_asm.h+43−0
@@ -169,6 +169,34 @@ extern char __smccc_workaround_1_smc[__SMCCC_WORKAROUND_1_SMC_SZ]; · 168 unmodified lines
169169 *__hyp_this_cpu_ptr(sym); \
170170 })
171171
172+#define __KVM_EXTABLE(from, to) \
173+ " .pushsection __kvm_ex_table, \"a\"\n" \
174+ " .align 3\n" \
175+ " .long (" #from " - .), (" #to " - .)\n" \
176+ " .popsection\n"
177+
178+
179+#define __kvm_at(at_op, addr) \
180+( { \
181+ int __kvm_at_err = 0; \
182+ u64 spsr, elr; \
183+ asm volatile( \
184+ " mrs %1, spsr_el2\n" \
185+ " mrs %2, elr_el2\n" \
186+ "1: at "at_op", %3\n" \
187+ " isb\n" \
188+ " b 9f\n" \
189+ "2: msr spsr_el2, %1\n" \
190+ " msr elr_el2, %2\n" \
191+ " mov %w0, %4\n" \
192+ "9:\n" \
193+ __KVM_EXTABLE(1b, 2b) \
194+ : "+r" (__kvm_at_err), "=&r" (spsr), "=&r" (elr) \
195+ : "r" (addr), "i" (-EFAULT)); \
196+ __kvm_at_err; \
197+} )
198+
199+
172200 #else /* __ASSEMBLY__ */
173201
174202 .macro hyp_adr_this_cpu reg, sym, tmp
@@ -193,6 +221,21 @@ extern char __smccc_workaround_1_smc[__SMCCC_WORKAROUND_1_SMC_SZ]; · 18 unmodified lines
193221 ldr \vcpu, [\ctxt, #HOST_CONTEXT_VCPU]
194222 .endm
195223
224+/*
225+ * KVM extable for unexpected exceptions.
226+ * In the same format _asm_extable, but output to a different section so that
227+ * it can be mapped to EL2. The KVM version is not sorted. The caller must
228+ * ensure:
229+ * x18 has the hypervisor value to allow any Shadow-Call-Stack instrumented
230+ * code to write to it, and that SPSR_EL2 and ELR_EL2 are restored by the fixup.
231+ */
232+.macro _kvm_extable, from, to
233+ .pushsection __kvm_ex_table, "a"
234+ .align 3
235+ .long (\from - .), (\to - .)
236+ .popsection
237+.endm
238+
196239 #endif
197240
198241 #endif /* __ARM_KVM_ASM_H__ */
arch/arm64/include/asm/kvm_host.h+1−1
@@ -473,7 +473,7 @@ int __kvm_arm_vcpu_set_events(struct kvm_vcpu *vcpu, · 472 unmodified lines
473473
474474 #define KVM_ARCH_WANT_MMU_NOTIFIER
475475 int kvm_unmap_hva_range(struct kvm *kvm,
476− unsigned long start, unsigned long end);
476+ unsigned long start, unsigned long end, unsigned flags);
477477 int kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
478478 int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
479479 int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
arch/arm64/include/asm/tlbflush.h+4−2
@@ -28,14 +28,16 @@ · 27 unmodified lines
2828 * not. The macros handles invoking the asm with or without the
2929 * register argument as appropriate.
3030 */
31−#define __TLBI_0(op, arg) asm ("tlbi " #op "\n" \
31+#define __TLBI_0(op, arg) asm (ARM64_ASM_PREAMBLE \
32+ "tlbi " #op "\n" \
3233 ALTERNATIVE("nop\n nop", \
3334 "dsb ish\n tlbi " #op, \
3435 ARM64_WORKAROUND_REPEAT_TLBI, \
3536 CONFIG_ARM64_WORKAROUND_REPEAT_TLBI) \
3637 : : )
3738
38−#define __TLBI_1(op, arg) asm ("tlbi " #op ", %0\n" \
39+#define __TLBI_1(op, arg) asm (ARM64_ASM_PREAMBLE \
40+ "tlbi " #op ", %0\n" \
3941 ALTERNATIVE("nop\n nop", \
4042 "dsb ish\n tlbi " #op ", %0", \
4143 ARM64_WORKAROUND_REPEAT_TLBI, \
arch/arm64/kernel/acpi.c+1−1
@@ -322,7 +322,7 @@ void __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size) · 321 unmodified lines
322322 */
323323 if (memblock_is_map_memory(phys))
324324 return (void __iomem *)__phys_to_virt(phys);
325− /* fall through */
325+ fallthrough;
326326
327327 default:
328328 if (region->attribute & EFI_MEMORY_WB)
arch/arm64/kernel/cpu_errata.c+2−0
@@ -910,6 +910,8 @@ const struct arm64_cpu_capabilities arm64_errata[] = { · 909 unmodified lines
910910 .desc = "ARM erratum 1418040",
911911 .capability = ARM64_WORKAROUND_1418040,
912912 ERRATA_MIDR_RANGE_LIST(erratum_1418040_list),
913+ .type = (ARM64_CPUCAP_SCOPE_LOCAL_CPU |
914+ ARM64_CPUCAP_PERMITTED_FOR_LATE_CPU),
913915 },
914916 #endif
915917 #ifdef CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT
arch/arm64/kernel/cpufeature.c+1−1
@@ -686,7 +686,7 @@ static s64 arm64_ftr_safe_value(const struct arm64_ftr_bits *ftrp, s64 new, · 685 unmodified lines
686686 case FTR_HIGHER_OR_ZERO_SAFE:
687687 if (!cur || !new)
688688 break;
689− /* Fallthrough */
689+ fallthrough;
690690 case FTR_HIGHER_SAFE:
691691 ret = new > cur ? new : cur;
692692 break;
arch/arm64/kernel/cpuinfo.c+0−1
@@ -327,7 +327,6 @@ static void cpuinfo_detect_icache_policy(struct cpuinfo_arm64 *info) · 326 unmodified lines
327327 set_bit(ICACHEF_VPIPT, &__icache_flags);
328328 break;
329329 default:
330− /* Fallthrough */
331330 case ICACHE_POLICY_VIPT:
332331 /* Assume aliasing */
333332 set_bit(ICACHEF_ALIASING, &__icache_flags);
arch/arm64/kernel/entry.S+0−21
@@ -170,19 +170,6 @@ alternative_cb_end · 169 unmodified lines
170170 stp x28, x29, [sp, #16 * 14]
171171
172172 .if \el == 0
173− .if \regsize == 32
174− /*
175− * If we're returning from a 32-bit task on a system affected by
176− * 1418040 then re-enable userspace access to the virtual counter.
177− */
178−#ifdef CONFIG_ARM64_ERRATUM_1418040
179−alternative_if ARM64_WORKAROUND_1418040
180− mrs x0, cntkctl_el1
181− orr x0, x0, #2 // ARCH_TIMER_USR_VCT_ACCESS_EN
182− msr cntkctl_el1, x0
183−alternative_else_nop_endif
184−#endif
185− .endif
186173 clear_gp_regs
187174 mrs x21, sp_el0
188175 ldr_this_cpu tsk, __entry_task, x20
@@ -294,14 +281,6 @@ alternative_else_nop_endif · 105 unmodified lines
294281 tst x22, #PSR_MODE32_BIT // native task?
295282 b.eq 3f
296283
297−#ifdef CONFIG_ARM64_ERRATUM_1418040
298−alternative_if ARM64_WORKAROUND_1418040
299− mrs x0, cntkctl_el1
300− bic x0, x0, #2 // ARCH_TIMER_USR_VCT_ACCESS_EN
301− msr cntkctl_el1, x0
302−alternative_else_nop_endif
303−#endif
304−
305284 #ifdef CONFIG_ARM64_ERRATUM_845719
306285 alternative_if ARM64_WORKAROUND_845719
307286 #ifdef CONFIG_PID_IN_CONTEXTIDR
arch/arm64/kernel/hw_breakpoint.c+3−3
@@ -257,7 +257,7 @@ static int hw_breakpoint_control(struct perf_event *bp, · 256 unmodified lines
257257 * level.
258258 */
259259 enable_debug_monitors(dbg_el);
260− /* Fall through */
260+ fallthrough;
261261 case HW_BREAKPOINT_RESTORE:
262262 /* Setup the address register. */
263263 write_wb_reg(val_reg, i, info->address);
@@ -541,13 +541,13 @@ int hw_breakpoint_arch_parse(struct perf_event *bp, · 277 unmodified lines
541541 if (hw->ctrl.len == ARM_BREAKPOINT_LEN_2)
542542 break;
543543
544− /* Fallthrough */
544+ fallthrough;
545545 case 3:
546546 /* Allow single byte watchpoint. */
547547 if (hw->ctrl.len == ARM_BREAKPOINT_LEN_1)
548548 break;
549549
550− /* Fallthrough */
550+ fallthrough;
551551 default:
552552 return -EINVAL;
553553 }
arch/arm64/kernel/image-vars.h+4−0
@@ -103,6 +103,10 @@ KVM_NVHE_ALIAS(vgic_v3_cpuif_trap); · 102 unmodified lines
103103 KVM_NVHE_ALIAS(gic_pmr_sync);
104104 #endif
105105
106+/* EL2 exception handling */
107+KVM_NVHE_ALIAS(__start___kvm_ex_table);
108+KVM_NVHE_ALIAS(__stop___kvm_ex_table);
109+
106110 #endif /* CONFIG_KVM */
107111
108112 #endif /* __ARM64_KERNEL_IMAGE_VARS_H */
arch/arm64/kernel/module-plts.c+1−2
@@ -305,8 +305,7 @@ int module_frob_arch_sections(Elf_Ehdr *ehdr, Elf_Shdr *sechdrs, · 304 unmodified lines
305305 mod->arch.core.plt_shndx = i;
306306 else if (!strcmp(secstrings + sechdrs[i].sh_name, ".init.plt"))
307307 mod->arch.init.plt_shndx = i;
308− else if (IS_ENABLED(CONFIG_DYNAMIC_FTRACE) &&
309− !strcmp(secstrings + sechdrs[i].sh_name,
308+ else if (!strcmp(secstrings + sechdrs[i].sh_name,
310309 ".text.ftrace_trampoline"))
311310 tramp = sechdrs + i;
312311 else if (sechdrs[i].sh_type == SHT_SYMTAB)
arch/arm64/kernel/module.c+4−4
@@ -315,21 +315,21 @@ int apply_relocate_add(Elf64_Shdr *sechdrs, · 314 unmodified lines
315315 /* MOVW instruction relocations. */
316316 case R_AARCH64_MOVW_UABS_G0_NC:
317317 overflow_check = false;
318− /* Fall through */
318+ fallthrough;
319319 case R_AARCH64_MOVW_UABS_G0:
320320 ovf = reloc_insn_movw(RELOC_OP_ABS, loc, val, 0,
321321 AARCH64_INSN_IMM_MOVKZ);
322322 break;
323323 case R_AARCH64_MOVW_UABS_G1_NC:
324324 overflow_check = false;
325− /* Fall through */
325+ fallthrough;
326326 case R_AARCH64_MOVW_UABS_G1:
327327 ovf = reloc_insn_movw(RELOC_OP_ABS, loc, val, 16,
328328 AARCH64_INSN_IMM_MOVKZ);
329329 break;
330330 case R_AARCH64_MOVW_UABS_G2_NC:
331331 overflow_check = false;
332− /* Fall through */
332+ fallthrough;
333333 case R_AARCH64_MOVW_UABS_G2:
334334 ovf = reloc_insn_movw(RELOC_OP_ABS, loc, val, 32,
335335 AARCH64_INSN_IMM_MOVKZ);
@@ -397,7 +397,7 @@ int apply_relocate_add(Elf64_Shdr *sechdrs, · 61 unmodified lines
397397 break;
398398 case R_AARCH64_ADR_PREL_PG_HI21_NC:
399399 overflow_check = false;
400− /* Fall through */
400+ fallthrough;
401401 case R_AARCH64_ADR_PREL_PG_HI21:
402402 ovf = reloc_insn_adrp(me, sechdrs, loc, val);
403403 if (ovf && ovf != -ERANGE)
arch/arm64/kernel/process.c+34−2
@@ -123,10 +123,8 @@ void arch_cpu_idle(void) · 122 unmodified lines
123123 * This should do all the clock switching and wait for interrupt
124124 * tricks
125125 */
126− trace_cpu_idle_rcuidle(1, smp_processor_id());
127126 cpu_do_idle();
128127 local_irq_enable();
129− trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id());
130128 }
131129
132130 #ifdef CONFIG_HOTPLUG_CPU
@@ -515,6 +513,39 @@ static void entry_task_switch(struct task_struct *next) · 382 unmodified lines
515513 __this_cpu_write(__entry_task, next);
516514 }
517515
516+/*
517+ * ARM erratum 1418040 handling, affecting the 32bit view of CNTVCT.
518+ * Assuming the virtual counter is enabled at the beginning of times:
519+ *
520+ * - disable access when switching from a 64bit task to a 32bit task
521+ * - enable access when switching from a 32bit task to a 64bit task
522+ */
523+static void erratum_1418040_thread_switch(struct task_struct *prev,
524+ struct task_struct *next)
525+{
526+ bool prev32, next32;
527+ u64 val;
528+
529+ if (!(IS_ENABLED(CONFIG_ARM64_ERRATUM_1418040) &&
530+ cpus_have_const_cap(ARM64_WORKAROUND_1418040)))
531+ return;
532+
533+ prev32 = is_compat_thread(task_thread_info(prev));
534+ next32 = is_compat_thread(task_thread_info(next));
535+
536+ if (prev32 == next32)
537+ return;
538+
539+ val = read_sysreg(cntkctl_el1);
540+
541+ if (!next32)
542+ val |= ARCH_TIMER_USR_VCT_ACCESS_EN;
543+ else
544+ val &= ~ARCH_TIMER_USR_VCT_ACCESS_EN;
545+
546+ write_sysreg(val, cntkctl_el1);
547+}
548+
518549 /*
519550 * Thread switching.
520551 */
@@ -530,6 +561,7 @@ __notrace_funcgraph struct task_struct *__switch_to(struct task_struct *prev, · 9 unmodified lines
530561 entry_task_switch(next);
531562 uao_thread_switch(next);
532563 ssbs_thread_switch(next);
564+ erratum_1418040_thread_switch(prev, next);
533565
534566 /*
535567 * Complete any pending TLB or cache maintenance on this CPU in case
arch/arm64/kernel/setup.c+0−1
@@ -280,7 +280,6 @@ u64 cpu_logical_map(int cpu) · 279 unmodified lines
280280 {
281281 return __cpu_logical_map[cpu];
282282 }
283−EXPORT_SYMBOL_GPL(cpu_logical_map);
284283
285284 void __init __no_sanitize_address setup_arch(char **cmdline_p)
286285 {
arch/arm64/kernel/smp.c+1−1
@@ -151,7 +151,7 @@ int __cpu_up(unsigned int cpu, struct task_struct *idle) · 150 unmodified lines
151151 break;
152152 }
153153 pr_crit("CPU%u: may not have shut down cleanly\n", cpu);
154− /* Fall through */
154+ fallthrough;
155155 case CPU_STUCK_IN_KERNEL:
156156 pr_crit("CPU%u: is stuck in kernel\n", cpu);
157157 if (status & CPU_STUCK_REASON_52_BIT_VA)
arch/arm64/kernel/vdso32/Makefile+1−1
@@ -208,7 +208,7 @@ quiet_cmd_vdsosym = VDSOSYM $@ · 207 unmodified lines
208208 cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@
209209
210210 # Install commands for the unstripped file
211−quiet_cmd_vdso_install = INSTALL $@
211+quiet_cmd_vdso_install = INSTALL32 $@
212212 cmd_vdso_install = cp $(obj)/$@.dbg $(MODLIB)/vdso/vdso32.so
213213
214214 vdso.so: $(obj)/vdso.so.dbg
arch/arm64/kernel/vmlinux.lds.S+8−0
@@ -20,6 +20,13 @@ ENTRY(_text) · 19 unmodified lines
2020
2121 jiffies = jiffies_64;
2222
23+
24+#define HYPERVISOR_EXTABLE \
25+ . = ALIGN(SZ_8); \
26+ __start___kvm_ex_table = .; \
27+ *(__kvm_ex_table) \
28+ __stop___kvm_ex_table = .;
29+
2330 #define HYPERVISOR_TEXT \
2431 /* \
2532 * Align to 4 KB so that \
@@ -35,6 +42,7 @@ jiffies = jiffies_64; · 9 unmodified lines
3542 __hyp_idmap_text_end = .; \
3643 __hyp_text_start = .; \
3744 *(.hyp.text) \
45+ HYPERVISOR_EXTABLE \
3846 __hyp_text_end = .;
3947
4048 #define IDMAP_TEXT \
arch/arm64/kvm/arm.c+4−0
@@ -1640,6 +1640,10 @@ int kvm_arch_init(void *opaque) · 1639 unmodified lines
16401640 return -ENODEV;
16411641 }
16421642
1643+ if (cpus_have_final_cap(ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE))
1644+ kvm_info("Guests without required CPU erratum workarounds can deadlock system!\n" \
1645+ "Only trusted guests should be used on this system.\n");
1646+
16431647 for_each_online_cpu(cpu) {
16441648 smp_call_function_single(cpu, check_kvm_target_cpu, &ret, 1);
16451649 if (ret < 0) {
arch/arm64/kvm/handle_exit.c+1−1
@@ -128,7 +128,7 @@ static int kvm_handle_guest_debug(struct kvm_vcpu *vcpu) · 127 unmodified lines
128128 switch (ESR_ELx_EC(esr)) {
129129 case ESR_ELx_EC_WATCHPT_LOW:
130130 run->debug.arch.far = vcpu->arch.fault.far_el2;
131− /* fall through */
131+ fallthrough;
132132 case ESR_ELx_EC_SOFTSTP_LOW:
133133 case ESR_ELx_EC_BREAKPT_LOW:
134134 case ESR_ELx_EC_BKPT32:
arch/arm64/kvm/hyp/entry.S+9−6
@@ -196,20 +196,23 @@ alternative_endif · 195 unmodified lines
196196 // This is our single instruction exception window. A pending
197197 // SError is guaranteed to occur at the earliest when we unmask
198198 // it, and at the latest just after the ISB.
199− .global abort_guest_exit_start
200199 abort_guest_exit_start:
201200
202201 isb
203202
204− .global abort_guest_exit_end
205203 abort_guest_exit_end:
206204
207205 msr daifset, #4 // Mask aborts
206+ ret
207+
208+ _kvm_extable abort_guest_exit_start, 9997f
209+ _kvm_extable abort_guest_exit_end, 9997f
210+9997:
211+ msr daifset, #4 // Mask aborts
212+ mov x0, #(1 << ARM_EXIT_WITH_SERROR_BIT)
208213
209− // If the exception took place, restore the EL1 exception
210− // context so that we can report some information.
211− // Merge the exception code with the SError pending bit.
212− tbz x0, #ARM_EXIT_WITH_SERROR_BIT, 1f
214+ // restore the EL1 exception context so that we can report some
215+ // information. Merge the exception code with the SError pending bit.
213216 msr elr_el2, x2
214217 msr esr_el2, x3
215218 msr spsr_el2, x4
arch/arm64/kvm/hyp/hyp-entry.S+41−24
@@ -15,6 +15,30 @@ · 14 unmodified lines
1515 #include <asm/kvm_mmu.h>
1616 #include <asm/mmu.h>
1717
18+.macro save_caller_saved_regs_vect
19+ /* x0 and x1 were saved in the vector entry */
20+ stp x2, x3, [sp, #-16]!
21+ stp x4, x5, [sp, #-16]!
22+ stp x6, x7, [sp, #-16]!
23+ stp x8, x9, [sp, #-16]!
24+ stp x10, x11, [sp, #-16]!
25+ stp x12, x13, [sp, #-16]!
26+ stp x14, x15, [sp, #-16]!
27+ stp x16, x17, [sp, #-16]!
28+.endm
29+
30+.macro restore_caller_saved_regs_vect
31+ ldp x16, x17, [sp], #16
32+ ldp x14, x15, [sp], #16
33+ ldp x12, x13, [sp], #16
34+ ldp x10, x11, [sp], #16
35+ ldp x8, x9, [sp], #16
36+ ldp x6, x7, [sp], #16
37+ ldp x4, x5, [sp], #16
38+ ldp x2, x3, [sp], #16
39+ ldp x0, x1, [sp], #16
40+.endm
41+
1842 .text
1943
2044 .macro do_el2_call
@@ -143,13 +167,19 @@ el1_error: · 122 unmodified lines
143167 b __guest_exit
144168
145169 el2_sync:
146− /* Check for illegal exception return, otherwise panic */
170+ /* Check for illegal exception return */
147171 mrs x0, spsr_el2
172+ tbnz x0, #20, 1f
148173
149− /* if this was something else, then panic! */
150− tst x0, #PSR_IL_BIT
151− b.eq __hyp_panic
174+ save_caller_saved_regs_vect
175+ stp x29, x30, [sp, #-16]!
176+ bl kvm_unexpected_el2_exception
177+ ldp x29, x30, [sp], #16
178+ restore_caller_saved_regs_vect
152179
180+ eret
181+
182+1:
153183 /* Let's attempt a recovery from the illegal exception return */
154184 get_vcpu_ptr x1, x0
155185 mov x0, #ARM_EXCEPTION_IL
@@ -157,27 +187,14 @@ el2_sync: · 1 unmodified line
157187
158188
159189 el2_error:
160− ldp x0, x1, [sp], #16
190+ save_caller_saved_regs_vect
191+ stp x29, x30, [sp, #-16]!
192+
193+ bl kvm_unexpected_el2_exception
194+
195+ ldp x29, x30, [sp], #16
196+ restore_caller_saved_regs_vect
161197
162− /*
163− * Only two possibilities:
164− * 1) Either we come from the exit path, having just unmasked
165− * PSTATE.A: change the return code to an EL2 fault, and
166− * carry on, as we're already in a sane state to handle it.
167− * 2) Or we come from anywhere else, and that's a bug: we panic.
168− *
169− * For (1), x0 contains the original return code and x1 doesn't
170− * contain anything meaningful at that stage. We can reuse them
171− * as temp registers.
172− * For (2), who cares?
173− */
174− mrs x0, elr_el2
175− adr x1, abort_guest_exit_start
176− cmp x0, x1
177− adr x1, abort_guest_exit_end
178− ccmp x0, x1, #4, ne
179− b.ne __hyp_panic
180− mov x0, #(1 << ARM_EXIT_WITH_SERROR_BIT)
181198 eret
182199 sb
183200
arch/arm64/kvm/hyp/include/hyp/debug-sr.h+30−30
@@ -21,70 +21,70 @@ · 20 unmodified lines
2121 #define save_debug(ptr,reg,nr) \
2222 switch (nr) { \
2323 case 15: ptr[15] = read_debug(reg, 15); \
24− /* Fall through */ \
24+ fallthrough; \
2525 case 14: ptr[14] = read_debug(reg, 14); \
26− /* Fall through */ \
26+ fallthrough; \
2727 case 13: ptr[13] = read_debug(reg, 13); \
28− /* Fall through */ \
28+ fallthrough; \
2929 case 12: ptr[12] = read_debug(reg, 12); \
30− /* Fall through */ \
30+ fallthrough; \
3131 case 11: ptr[11] = read_debug(reg, 11); \
32− /* Fall through */ \
32+ fallthrough; \
3333 case 10: ptr[10] = read_debug(reg, 10); \
34− /* Fall through */ \
34+ fallthrough; \
3535 case 9: ptr[9] = read_debug(reg, 9); \
36− /* Fall through */ \
36+ fallthrough; \
3737 case 8: ptr[8] = read_debug(reg, 8); \
38− /* Fall through */ \
38+ fallthrough; \
3939 case 7: ptr[7] = read_debug(reg, 7); \
40− /* Fall through */ \
40+ fallthrough; \
4141 case 6: ptr[6] = read_debug(reg, 6); \
42− /* Fall through */ \
42+ fallthrough; \
4343 case 5: ptr[5] = read_debug(reg, 5); \
44− /* Fall through */ \
44+ fallthrough; \
4545 case 4: ptr[4] = read_debug(reg, 4); \
46− /* Fall through */ \
46+ fallthrough; \
4747 case 3: ptr[3] = read_debug(reg, 3); \
48− /* Fall through */ \
48+ fallthrough; \
4949 case 2: ptr[2] = read_debug(reg, 2); \
50− /* Fall through */ \
50+ fallthrough; \
5151 case 1: ptr[1] = read_debug(reg, 1); \
52− /* Fall through */ \
52+ fallthrough; \
5353 default: ptr[0] = read_debug(reg, 0); \
5454 }
5555
5656 #define restore_debug(ptr,reg,nr) \
5757 switch (nr) { \
5858 case 15: write_debug(ptr[15], reg, 15); \
59− /* Fall through */ \
59+ fallthrough; \
6060 case 14: write_debug(ptr[14], reg, 14); \
61− /* Fall through */ \
61+ fallthrough; \
6262 case 13: write_debug(ptr[13], reg, 13); \
63− /* Fall through */ \
63+ fallthrough; \
6464 case 12: write_debug(ptr[12], reg, 12); \
65− /* Fall through */ \
65+ fallthrough; \
6666 case 11: write_debug(ptr[11], reg, 11); \
67− /* Fall through */ \
67+ fallthrough; \
6868 case 10: write_debug(ptr[10], reg, 10); \
69− /* Fall through */ \
69+ fallthrough; \
7070 case 9: write_debug(ptr[9], reg, 9); \
71− /* Fall through */ \
71+ fallthrough; \
7272 case 8: write_debug(ptr[8], reg, 8); \
73− /* Fall through */ \
73+ fallthrough; \
7474 case 7: write_debug(ptr[7], reg, 7); \
75− /* Fall through */ \
75+ fallthrough; \
7676 case 6: write_debug(ptr[6], reg, 6); \
77− /* Fall through */ \
77+ fallthrough; \
7878 case 5: write_debug(ptr[5], reg, 5); \
79− /* Fall through */ \
79+ fallthrough; \
8080 case 4: write_debug(ptr[4], reg, 4); \
81− /* Fall through */ \
81+ fallthrough; \
8282 case 3: write_debug(ptr[3], reg, 3); \
83− /* Fall through */ \
83+ fallthrough; \
8484 case 2: write_debug(ptr[2], reg, 2); \
85− /* Fall through */ \
85+ fallthrough; \
8686 case 1: write_debug(ptr[1], reg, 1); \
87− /* Fall through */ \
87+ fallthrough; \
8888 default: write_debug(ptr[0], reg, 0); \
8989 }
9090
arch/arm64/kvm/hyp/include/hyp/switch.h+35−4
@@ -17,6 +17,7 @@ · 16 unmodified lines
1717
1818 #include <asm/barrier.h>
1919 #include <asm/cpufeature.h>
20+#include <asm/extable.h>
2021 #include <asm/kprobes.h>
2122 #include <asm/kvm_asm.h>
2223 #include <asm/kvm_emulate.h>
@@ -29,6 +30,9 @@ · 6 unmodified lines
2930
3031 extern const char __hyp_panic_string[];
3132
33+extern struct exception_table_entry __start___kvm_ex_table;
34+extern struct exception_table_entry __stop___kvm_ex_table;
35+
3236 /* Check whether the FP regs were dirtied while in the host-side run loop: */
3337 static inline bool update_fp_enabled(struct kvm_vcpu *vcpu)
3438 {
@@ -142,10 +146,10 @@ static inline bool __translate_far_to_hpfar(u64 far, u64 *hpfar) · 107 unmodified lines
142146 * saved the guest context yet, and we may return early...
143147 */
144148 par = read_sysreg(par_el1);
145− asm volatile("at s1e1r, %0" : : "r" (far));
146− isb();
147−
148− tmp = read_sysreg(par_el1);
149+ if (!__kvm_at("s1e1r", far))
150+ tmp = read_sysreg(par_el1);
151+ else
152+ tmp = SYS_PAR_EL1_F; /* back to the guest */
149153 write_sysreg(par, par_el1);
150154
151155 if (unlikely(tmp & SYS_PAR_EL1_F))
@@ -508,4 +512,31 @@ static inline void __set_host_arch_workaround_state(struct kvm_vcpu *vcpu) · 356 unmodified lines
508512 #endif
509513 }
510514
515+static inline void __kvm_unexpected_el2_exception(void)
516+{
517+ unsigned long addr, fixup;
518+ struct kvm_cpu_context *host_ctxt;
519+ struct exception_table_entry *entry, *end;
520+ unsigned long elr_el2 = read_sysreg(elr_el2);
521+
522+ entry = hyp_symbol_addr(__start___kvm_ex_table);
523+ end = hyp_symbol_addr(__stop___kvm_ex_table);
524+ host_ctxt = &__hyp_this_cpu_ptr(kvm_host_data)->host_ctxt;
525+
526+ while (entry < end) {
527+ addr = (unsigned long)&entry->insn + entry->insn;
528+ fixup = (unsigned long)&entry->fixup + entry->fixup;
529+
530+ if (addr != elr_el2) {
531+ entry++;
532+ continue;
533+ }
534+
535+ write_sysreg(fixup, elr_el2);
536+ return;
537+ }
538+
539+ hyp_panic(host_ctxt);
540+}
541+
511542 #endif /* __ARM64_KVM_HYP_SWITCH_H__ */
arch/arm64/kvm/hyp/nvhe/switch.c+5−0
@@ -270,3 +270,8 @@ void __noreturn hyp_panic(struct kvm_cpu_context *host_ctxt) · 269 unmodified lines
270270 read_sysreg(hpfar_el2), par, vcpu);
271271 unreachable();
272272 }
273+
274+asmlinkage void kvm_unexpected_el2_exception(void)
275+{
276+ return __kvm_unexpected_el2_exception();
277+}
arch/arm64/kvm/hyp/vgic-v3-sr.c+8−8
@@ -340,10 +340,10 @@ void __vgic_v3_save_aprs(struct vgic_v3_cpu_if *cpu_if) · 339 unmodified lines
340340 case 7:
341341 cpu_if->vgic_ap0r[3] = __vgic_v3_read_ap0rn(3);
342342 cpu_if->vgic_ap0r[2] = __vgic_v3_read_ap0rn(2);
343− /* Fall through */
343+ fallthrough;
344344 case 6:
345345 cpu_if->vgic_ap0r[1] = __vgic_v3_read_ap0rn(1);
346− /* Fall through */
346+ fallthrough;
347347 default:
348348 cpu_if->vgic_ap0r[0] = __vgic_v3_read_ap0rn(0);
349349 }
@@ -352,10 +352,10 @@ void __vgic_v3_save_aprs(struct vgic_v3_cpu_if *cpu_if) · 2 unmodified lines
352352 case 7:
353353 cpu_if->vgic_ap1r[3] = __vgic_v3_read_ap1rn(3);
354354 cpu_if->vgic_ap1r[2] = __vgic_v3_read_ap1rn(2);
355− /* Fall through */
355+ fallthrough;
356356 case 6:
357357 cpu_if->vgic_ap1r[1] = __vgic_v3_read_ap1rn(1);
358− /* Fall through */
358+ fallthrough;
359359 default:
360360 cpu_if->vgic_ap1r[0] = __vgic_v3_read_ap1rn(0);
361361 }
@@ -373,10 +373,10 @@ void __vgic_v3_restore_aprs(struct vgic_v3_cpu_if *cpu_if) · 11 unmodified lines
373373 case 7:
374374 __vgic_v3_write_ap0rn(cpu_if->vgic_ap0r[3], 3);
375375 __vgic_v3_write_ap0rn(cpu_if->vgic_ap0r[2], 2);
376− /* Fall through */
376+ fallthrough;
377377 case 6:
378378 __vgic_v3_write_ap0rn(cpu_if->vgic_ap0r[1], 1);
379− /* Fall through */
379+ fallthrough;
380380 default:
381381 __vgic_v3_write_ap0rn(cpu_if->vgic_ap0r[0], 0);
382382 }
@@ -385,10 +385,10 @@ void __vgic_v3_restore_aprs(struct vgic_v3_cpu_if *cpu_if) · 2 unmodified lines
385385 case 7:
386386 __vgic_v3_write_ap1rn(cpu_if->vgic_ap1r[3], 3);
387387 __vgic_v3_write_ap1rn(cpu_if->vgic_ap1r[2], 2);
388− /* Fall through */
388+ fallthrough;
389389 case 6:
390390 __vgic_v3_write_ap1rn(cpu_if->vgic_ap1r[1], 1);
391− /* Fall through */
391+ fallthrough;
392392 default:
393393 __vgic_v3_write_ap1rn(cpu_if->vgic_ap1r[0], 0);
394394 }
arch/arm64/kvm/hyp/vhe/switch.c+5−0
@@ -217,3 +217,8 @@ void __noreturn hyp_panic(struct kvm_cpu_context *host_ctxt) · 216 unmodified lines
217217 __hyp_call_panic(spsr, elr, par, host_ctxt);
218218 unreachable();
219219 }
220+
221+asmlinkage void kvm_unexpected_el2_exception(void)
222+{
223+ return __kvm_unexpected_el2_exception();
224+}
arch/arm64/kvm/mmu.c+14−5
@@ -343,7 +343,8 @@ static void unmap_stage2_p4ds(struct kvm_s2_mmu *mmu, pgd_t *pgd, · 342 unmodified lines
343343 * destroying the VM), otherwise another faulting VCPU may come in and mess
344344 * with things behind our backs.
345345 */
346−static void unmap_stage2_range(struct kvm_s2_mmu *mmu, phys_addr_t start, u64 size)
346+static void __unmap_stage2_range(struct kvm_s2_mmu *mmu, phys_addr_t start, u64 size,
347+ bool may_block)
347348 {
348349 struct kvm *kvm = mmu->kvm;
349350 pgd_t *pgd;
@@ -369,11 +370,16 @@ static void unmap_stage2_range(struct kvm_s2_mmu *mmu, phys_addr_t start, u64 si · 19 unmodified lines
369370 * If the range is too large, release the kvm->mmu_lock
370371 * to prevent starvation and lockup detector warnings.
371372 */
372− if (next != end)
373+ if (may_block && next != end)
373374 cond_resched_lock(&kvm->mmu_lock);
374375 } while (pgd++, addr = next, addr != end);
375376 }
376377
378+static void unmap_stage2_range(struct kvm_s2_mmu *mmu, phys_addr_t start, u64 size)
379+{
380+ __unmap_stage2_range(mmu, start, size, true);
381+}
382+
377383 static void stage2_flush_ptes(struct kvm_s2_mmu *mmu, pmd_t *pmd,
378384 phys_addr_t addr, phys_addr_t end)
379385 {
@@ -2208,18 +2214,21 @@ static int handle_hva_to_gpa(struct kvm *kvm, · 1828 unmodified lines
22082214
22092215 static int kvm_unmap_hva_handler(struct kvm *kvm, gpa_t gpa, u64 size, void *data)
22102216 {
2211− unmap_stage2_range(&kvm->arch.mmu, gpa, size);
2217+ unsigned flags = *(unsigned *)data;
2218+ bool may_block = flags & MMU_NOTIFIER_RANGE_BLOCKABLE;
2219+
2220+ __unmap_stage2_range(&kvm->arch.mmu, gpa, size, may_block);
22122221 return 0;
22132222 }
22142223
22152224 int kvm_unmap_hva_range(struct kvm *kvm,
2216− unsigned long start, unsigned long end)
2225+ unsigned long start, unsigned long end, unsigned flags)
22172226 {
22182227 if (!kvm->arch.mmu.pgd)
22192228 return 0;
22202229
22212230 trace_kvm_unmap_hva_range(start, end);
2222− handle_hva_to_gpa(kvm, start, end, &kvm_unmap_hva_handler, NULL);
2231+ handle_hva_to_gpa(kvm, start, end, &kvm_unmap_hva_handler, &flags);
22232232 return 0;
22242233 }
22252234
arch/arm64/mm/context.c+1−1
@@ -45,7 +45,7 @@ static u32 get_cpu_asid_bits(void) · 44 unmodified lines
4545 default:
4646 pr_warn("CPU%d: Unknown ASID size (%d); assuming 8-bit\n",
4747 smp_processor_id(), fld);
48− /* Fallthrough */
48+ fallthrough;
4949 case 0:
5050 asid = 8;
5151 break;
arch/c6x/kernel/signal.c+2−2
@@ -220,7 +220,7 @@ handle_restart(struct pt_regs *regs, struct k_sigaction *ka, int has_handler) · 219 unmodified lines
220220 regs->a4 = -EINTR;
221221 break;
222222 }
223− /* fallthrough */
223+ fallthrough;
224224 case -ERESTARTNOINTR:
225225 do_restart:
226226 regs->a4 = regs->orig_a4;
@@ -252,7 +252,7 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs, · 25 unmodified lines
252252 break;
253253 }
254254
255− /* fallthrough */
255+ fallthrough;
256256 case -ERESTARTNOINTR:
257257 regs->a4 = regs->orig_a4;
258258 regs->pc -= 4;
arch/csky/kernel/signal.c+1−1
@@ -194,7 +194,7 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) · 193 unmodified lines
194194 regs->a0 = -EINTR;
195195 break;
196196 }
197− /* fallthrough */
197+ fallthrough;
198198 case -ERESTARTNOINTR:
199199 regs->a0 = regs->orig_a0;
200200 regs->pc -= TRAP0_SIZE;
arch/h8300/kernel/signal.c+1−1
@@ -227,7 +227,7 @@ handle_restart(struct pt_regs *regs, struct k_sigaction *ka) · 226 unmodified lines
227227 regs->er0 = -EINTR;
228228 break;
229229 }
230− /* fallthrough */
230+ fallthrough;
231231 case -ERESTARTNOINTR:
232232 do_restart:
233233 regs->er0 = regs->orig_er0;
arch/hexagon/kernel/module.c+1−1
@@ -120,7 +120,7 @@ int apply_relocate_add(Elf_Shdr *sechdrs, const char *strtab, · 119 unmodified lines
120120 }
121121 case R_HEXAGON_HI16:
122122 value = (value>>16) & 0xffff;
123− /* fallthrough */
123+ fallthrough;
124124 case R_HEXAGON_LO16:
125125 *location &= ~0x00c03fff;
126126 *location |= value & 0x3fff;
arch/hexagon/kernel/signal.c+1−1
@@ -155,7 +155,7 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) · 154 unmodified lines
155155 regs->r00 = -EINTR;
156156 break;
157157 }
158− /* Fall through */
158+ fallthrough;
159159 case -ERESTARTNOINTR:
160160 regs->r06 = regs->syscall_nr;
161161 pt_set_elr(regs, pt_elr(regs) - 4);
arch/ia64/include/asm/pgtable.h+9−0
@@ -366,6 +366,15 @@ pgd_index (unsigned long address) · 365 unmodified lines
366366 }
367367 #define pgd_index pgd_index
368368
369+/*
370+ * In the kernel's mapped region we know everything is in region number 5, so
371+ * as an optimisation its PGD already points to the area for that region.
372+ * However, this also means that we cannot use pgd_index() and we must
373+ * never add the region here.
374+ */
375+#define pgd_offset_k(addr) \
376+ (init_mm.pgd + (((addr) >> PGDIR_SHIFT) & (PTRS_PER_PGD - 1)))
377+
369378 /* Look up a pgd entry in the gate area. On IA-64, the gate-area
370379 resides in the kernel-mapped segment, hence we use pgd_offset_k()
371380 here. */
arch/ia64/kernel/crash.c+1−1
@@ -163,7 +163,7 @@ kdump_init_notifier(struct notifier_block *self, unsigned long val, void *data) · 162 unmodified lines
163163 case DIE_INIT_MONARCH_LEAVE:
164164 if (!kdump_freeze_monarch)
165165 break;
166− /* fall through */
166+ fallthrough;
167167 case DIE_INIT_SLAVE_LEAVE:
168168 case DIE_INIT_MONARCH_ENTER:
169169 case DIE_MCA_RENDZVOUS_LEAVE:
arch/ia64/kernel/ia64_ksyms.c+1−1
@@ -3,7 +3,7 @@ · 2 unmodified lines
33 * Architecture-specific kernel symbols
44 */
55
6−#ifdef CONFIG_VIRTUAL_MEM_MAP
6+#if defined(CONFIG_VIRTUAL_MEM_MAP) || defined(CONFIG_DISCONTIGMEM)
77 #include <linux/compiler.h>
88 #include <linux/export.h>
99 #include <linux/memblock.h>
arch/ia64/kernel/module.c+1−1
@@ -654,7 +654,7 @@ do_reloc (struct module *mod, uint8_t r_type, Elf64_Sym *sym, uint64_t addend, · 653 unmodified lines
654654 }
655655 } else if (!is_internal(mod, val))
656656 val = get_plt(mod, location, val, &ok);
657− /* FALL THROUGH */
657+ fallthrough;
658658 default:
659659 val -= bundle(location);
660660 break;
arch/ia64/kernel/perfmon.c+1−1
@@ -3472,7 +3472,7 @@ pfm_restart(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs) · 3471 unmodified lines
34723472 break;
34733473 case PFM_CTX_LOADED:
34743474 if (CTX_HAS_SMPL(ctx) && fmt->fmt_restart_active) break;
3475− /* fall through */
3475+ fallthrough;
34763476 case PFM_CTX_UNLOADED:
34773477 case PFM_CTX_ZOMBIE:
34783478 DPRINT(("invalid state=%d\n", state));
arch/ia64/kernel/signal.c+1−1
@@ -374,7 +374,7 @@ ia64_do_signal (struct sigscratch *scr, long in_syscall) · 373 unmodified lines
374374 /* note: scr->pt.r10 is already -1 */
375375 break;
376376 }
377− /*FALLTHRU*/
377+ fallthrough;
378378 case ERESTARTNOINTR:
379379 ia64_decrement_ip(&scr->pt);
380380 restart = 0; /* don't restart twice if handle_signal() fails... */
arch/ia64/kernel/unaligned.c+3−3
@@ -1431,7 +1431,7 @@ ia64_handle_unaligned (unsigned long ifa, struct pt_regs *regs) · 1430 unmodified lines
14311431 if (u.insn.x)
14321432 /* oops, really a semaphore op (cmpxchg, etc) */
14331433 goto failure;
1434− /*FALLTHRU*/
1434+ fallthrough;
14351435 case LDS_IMM_OP:
14361436 case LDSA_IMM_OP:
14371437 case LDFS_OP:
@@ -1459,7 +1459,7 @@ ia64_handle_unaligned (unsigned long ifa, struct pt_regs *regs) · 21 unmodified lines
14591459 if (u.insn.x)
14601460 /* oops, really a semaphore op (cmpxchg, etc) */
14611461 goto failure;
1462− /*FALLTHRU*/
1462+ fallthrough;
14631463 case LD_IMM_OP:
14641464 case LDA_IMM_OP:
14651465 case LDBIAS_IMM_OP:
@@ -1475,7 +1475,7 @@ ia64_handle_unaligned (unsigned long ifa, struct pt_regs *regs) · 9 unmodified lines
14751475 if (u.insn.x)
14761476 /* oops, really a semaphore op (cmpxchg, etc) */
14771477 goto failure;
1478− /*FALLTHRU*/
1478+ fallthrough;
14791479 case ST_IMM_OP:
14801480 case STREL_IMM_OP:
14811481 ret = emulate_store_int(ifa, u.insn, regs);
arch/ia64/kernel/unwind.c+1−1
@@ -324,7 +324,7 @@ unw_access_gr (struct unw_frame_info *info, int regnum, unsigned long *val, char · 323 unmodified lines
324324 return 0;
325325 }
326326 }
327− /* fall through */
327+ fallthrough;
328328 case UNW_NAT_NONE:
329329 dummy_nat = 0;
330330 nat_addr = &dummy_nat;
arch/m68k/atari/atakeyb.c+1−1
@@ -207,7 +207,7 @@ repeat: · 206 unmodified lines
207207 self_test_last_rcv = jiffies;
208208 break;
209209 }
210− /* FALL THROUGH */
210+ fallthrough;
211211
212212 default:
213213 break_flag = scancode & BREAK_MASK;
arch/m68k/kernel/signal.c+1−1
@@ -1067,7 +1067,7 @@ handle_restart(struct pt_regs *regs, struct k_sigaction *ka, int has_handler) · 1066 unmodified lines
10671067 regs->d0 = -EINTR;
10681068 break;
10691069 }
1070− /* fallthrough */
1070+ fallthrough;
10711071 case -ERESTARTNOINTR:
10721072 do_restart:
10731073 regs->d0 = regs->orig_d0;
arch/m68k/mac/config.c+1−1
@@ -1018,7 +1018,7 @@ int __init mac_platform_init(void) · 1017 unmodified lines
10181018 */
10191019 platform_device_register_simple("mac_scsi", 1,
10201020 mac_scsi_duo_rsrc, ARRAY_SIZE(mac_scsi_duo_rsrc));
1021− /* fall through */
1021+ fallthrough;
10221022 case MAC_SCSI_OLD:
10231023 /* Addresses from Developer Notes for Duo System,
10241024 * PowerBook 180 & 160, 140 & 170, Macintosh IIsi
arch/m68k/mac/via.c+1−1
@@ -370,7 +370,7 @@ void via_nubus_irq_startup(int irq) · 369 unmodified lines
370370 /* Allow NuBus slots 9 through F. */
371371 via2[vDirA] &= 0x80 | ~(1 << irq_idx);
372372 }
373− /* fall through */
373+ fallthrough;
374374 case MAC_VIA_IICI:
375375 via_irq_enable(irq);
376376 break;
arch/m68k/mm/fault.c+1−1
@@ -118,7 +118,7 @@ good_area: · 117 unmodified lines
118118 pr_debug("do_page_fault: good_area\n");
119119 switch (error_code & 3) {
120120 default: /* 3: write, present */
121− /* fall through */
121+ fallthrough;
122122 case 2: /* write, not present */
123123 if (!(vma->vm_flags & VM_WRITE))
124124 goto acc_err;
arch/microblaze/kernel/signal.c+1−1
@@ -249,7 +249,7 @@ handle_restart(struct pt_regs *regs, struct k_sigaction *ka, int has_handler) · 248 unmodified lines
249249 regs->r3 = -EINTR;
250250 break;
251251 }
252− /* fallthrough */
252+ fallthrough;
253253 case -ERESTARTNOINTR:
254254 do_restart:
255255 /* offset of 4 bytes to re-execute trap (brki) instruction */
arch/microblaze/mm/init.c+3−0
@@ -46,6 +46,9 @@ unsigned long memory_size; · 45 unmodified lines
4646 EXPORT_SYMBOL(memory_size);
4747 unsigned long lowmem_size;
4848
49+EXPORT_SYMBOL(min_low_pfn);
50+EXPORT_SYMBOL(max_low_pfn);
51+
4952 #ifdef CONFIG_HIGHMEM
5053 pte_t *kmap_pte;
5154 EXPORT_SYMBOL(kmap_pte);
arch/mips/include/asm/irqflags.h+5−0
@@ -137,6 +137,11 @@ static inline int arch_irqs_disabled_flags(unsigned long flags) · 136 unmodified lines
137137 return !(flags & 1);
138138 }
139139
140+static inline int arch_irqs_disabled(void)
141+{
142+ return arch_irqs_disabled_flags(arch_local_save_flags());
143+}
144+
140145 #endif /* #ifndef __ASSEMBLY__ */
141146
142147 /*
arch/mips/include/asm/kvm_host.h+1−1
@@ -969,7 +969,7 @@ enum kvm_mips_fault_result kvm_trap_emul_gva_fault(struct kvm_vcpu *vcpu, · 968 unmodified lines
969969
970970 #define KVM_ARCH_WANT_MMU_NOTIFIER
971971 int kvm_unmap_hva_range(struct kvm *kvm,
972− unsigned long start, unsigned long end);
972+ unsigned long start, unsigned long end, unsigned flags);
973973 int kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
974974 int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
975975 int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
arch/mips/include/asm/mach-loongson64/cpu-feature-overrides.h+0−2
@@ -26,7 +26,6 @@ · 25 unmodified lines
2626 #define cpu_has_counter 1
2727 #define cpu_has_dc_aliases (PAGE_SIZE < 0x4000)
2828 #define cpu_has_divec 0
29−#define cpu_has_ejtag 0
3029 #define cpu_has_inclusive_pcaches 1
3130 #define cpu_has_llsc 1
3231 #define cpu_has_mcheck 0
@@ -42,7 +41,6 @@ · 9 unmodified lines
4241 #define cpu_has_veic 0
4342 #define cpu_has_vint 0
4443 #define cpu_has_vtag_icache 0
45−#define cpu_has_watch 1
4644 #define cpu_has_wsbh 1
4745 #define cpu_has_ic_fills_f_dc 1
4846 #define cpu_hwrena_impl_bits 0xc0000000
arch/mips/include/asm/mach-loongson64/irq.h+0−2
@@ -2,8 +2,6 @@ · 1 unmodified line
22 #ifndef __ASM_MACH_LOONGSON64_IRQ_H_
33 #define __ASM_MACH_LOONGSON64_IRQ_H_
44
5−#include <boot_param.h>
6−
75 /* cpu core interrupt numbers */
86 #define NR_IRQS_LEGACY 16
97 #define NR_MIPS_CPU_IRQS 8
arch/mips/include/asm/mach-loongson64/mmzone.h+0−1
@@ -9,7 +9,6 @@ · 8 unmodified lines
99 #ifndef _ASM_MACH_LOONGSON64_MMZONE_H
1010 #define _ASM_MACH_LOONGSON64_MMZONE_H
1111
12−#include <boot_param.h>
1312 #define NODE_ADDRSPACE_SHIFT 44
1413 #define NODE0_ADDRSPACE_OFFSET 0x000000000000UL
1514 #define NODE1_ADDRSPACE_OFFSET 0x100000000000UL
arch/mips/include/asm/unroll.h+32−32
@@ -28,38 +28,38 @@ · 27 unmodified lines
2828 BUILD_BUG_ON(!__builtin_constant_p(times)); \
2929 \
3030 switch (times) { \
31− case 32: fn(__VA_ARGS__); /* fall through */ \
32− case 31: fn(__VA_ARGS__); /* fall through */ \
33− case 30: fn(__VA_ARGS__); /* fall through */ \
34− case 29: fn(__VA_ARGS__); /* fall through */ \
35− case 28: fn(__VA_ARGS__); /* fall through */ \
36− case 27: fn(__VA_ARGS__); /* fall through */ \
37− case 26: fn(__VA_ARGS__); /* fall through */ \
38− case 25: fn(__VA_ARGS__); /* fall through */ \
39− case 24: fn(__VA_ARGS__); /* fall through */ \
40− case 23: fn(__VA_ARGS__); /* fall through */ \
41− case 22: fn(__VA_ARGS__); /* fall through */ \
42− case 21: fn(__VA_ARGS__); /* fall through */ \
43− case 20: fn(__VA_ARGS__); /* fall through */ \
44− case 19: fn(__VA_ARGS__); /* fall through */ \
45− case 18: fn(__VA_ARGS__); /* fall through */ \
46− case 17: fn(__VA_ARGS__); /* fall through */ \
47− case 16: fn(__VA_ARGS__); /* fall through */ \
48− case 15: fn(__VA_ARGS__); /* fall through */ \
49− case 14: fn(__VA_ARGS__); /* fall through */ \
50− case 13: fn(__VA_ARGS__); /* fall through */ \
51− case 12: fn(__VA_ARGS__); /* fall through */ \
52− case 11: fn(__VA_ARGS__); /* fall through */ \
53− case 10: fn(__VA_ARGS__); /* fall through */ \
54− case 9: fn(__VA_ARGS__); /* fall through */ \
55− case 8: fn(__VA_ARGS__); /* fall through */ \
56− case 7: fn(__VA_ARGS__); /* fall through */ \
57− case 6: fn(__VA_ARGS__); /* fall through */ \
58− case 5: fn(__VA_ARGS__); /* fall through */ \
59− case 4: fn(__VA_ARGS__); /* fall through */ \
60− case 3: fn(__VA_ARGS__); /* fall through */ \
61− case 2: fn(__VA_ARGS__); /* fall through */ \
62− case 1: fn(__VA_ARGS__); /* fall through */ \
31+ case 32: fn(__VA_ARGS__); fallthrough; \
32+ case 31: fn(__VA_ARGS__); fallthrough; \
33+ case 30: fn(__VA_ARGS__); fallthrough; \
34+ case 29: fn(__VA_ARGS__); fallthrough; \
35+ case 28: fn(__VA_ARGS__); fallthrough; \
36+ case 27: fn(__VA_ARGS__); fallthrough; \
37+ case 26: fn(__VA_ARGS__); fallthrough; \
38+ case 25: fn(__VA_ARGS__); fallthrough; \
39+ case 24: fn(__VA_ARGS__); fallthrough; \
40+ case 23: fn(__VA_ARGS__); fallthrough; \
41+ case 22: fn(__VA_ARGS__); fallthrough; \
42+ case 21: fn(__VA_ARGS__); fallthrough; \
43+ case 20: fn(__VA_ARGS__); fallthrough; \
44+ case 19: fn(__VA_ARGS__); fallthrough; \
45+ case 18: fn(__VA_ARGS__); fallthrough; \
46+ case 17: fn(__VA_ARGS__); fallthrough; \
47+ case 16: fn(__VA_ARGS__); fallthrough; \
48+ case 15: fn(__VA_ARGS__); fallthrough; \
49+ case 14: fn(__VA_ARGS__); fallthrough; \
50+ case 13: fn(__VA_ARGS__); fallthrough; \
51+ case 12: fn(__VA_ARGS__); fallthrough; \
52+ case 11: fn(__VA_ARGS__); fallthrough; \
53+ case 10: fn(__VA_ARGS__); fallthrough; \
54+ case 9: fn(__VA_ARGS__); fallthrough; \
55+ case 8: fn(__VA_ARGS__); fallthrough; \
56+ case 7: fn(__VA_ARGS__); fallthrough; \
57+ case 6: fn(__VA_ARGS__); fallthrough; \
58+ case 5: fn(__VA_ARGS__); fallthrough; \
59+ case 4: fn(__VA_ARGS__); fallthrough; \
60+ case 3: fn(__VA_ARGS__); fallthrough; \
61+ case 2: fn(__VA_ARGS__); fallthrough; \
62+ case 1: fn(__VA_ARGS__); fallthrough; \
6363 case 0: break; \
6464 \
6565 default: \
arch/mips/kernel/perf_event_mipsxx.c+2−2
@@ -1898,8 +1898,8 @@ static const struct mips_perf_event *mipsxx_pmu_map_raw_event(u64 config) · 1897 unmodified lines
18981898 (base_id >= 64 && base_id < 90) ||
18991899 (base_id >= 128 && base_id < 164) ||
19001900 (base_id >= 192 && base_id < 200) ||
1901− (base_id >= 256 && base_id < 274) ||
1902− (base_id >= 320 && base_id < 358) ||
1901+ (base_id >= 256 && base_id < 275) ||
1902+ (base_id >= 320 && base_id < 361) ||
19031903 (base_id >= 384 && base_id < 574))
19041904 break;
19051905
arch/mips/kernel/smp-bmips.c+2−0
@@ -239,6 +239,8 @@ static int bmips_boot_secondary(int cpu, struct task_struct *idle) · 238 unmodified lines
239239 */
240240 static void bmips_init_secondary(void)
241241 {
242+ bmips_cpu_setup();
243+
242244 switch (current_cpu_type()) {
243245 case CPU_BMIPS4350:
244246 case CPU_BMIPS4380:
arch/mips/kernel/traps.c+12−0
@@ -1287,6 +1287,18 @@ static int enable_restore_fp_context(int msa) · 1286 unmodified lines
12871287 err = own_fpu_inatomic(1);
12881288 if (msa && !err) {
12891289 enable_msa();
1290+ /*
1291+ * with MSA enabled, userspace can see MSACSR
1292+ * and MSA regs, but the values in them are from
1293+ * other task before current task, restore them
1294+ * from saved fp/msa context
1295+ */
1296+ write_msa_csr(current->thread.fpu.msacsr);
1297+ /*
1298+ * own_fpu_inatomic(1) just restore low 64bit,
1299+ * fix the high 64bit
1300+ */
1301+ init_msa_upper();
12901302 set_thread_flag(TIF_USEDMSA);
12911303 set_thread_flag(TIF_MSA_CTX_LIVE);
12921304 }
arch/mips/kvm/mmu.c+2−1
@@ -486,7 +486,8 @@ static int kvm_unmap_hva_handler(struct kvm *kvm, gfn_t gfn, gfn_t gfn_end, · 485 unmodified lines
486486 return 1;
487487 }
488488
489−int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end)
489+int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end,
490+ unsigned flags)
490491 {
491492 handle_hva_to_gpa(kvm, start, end, &kvm_unmap_hva_handler, NULL);
492493
arch/mips/mm/c-r4k.c+4−0
@@ -1712,7 +1712,11 @@ static void setup_scache(void) · 1711 unmodified lines
17121712 printk("MIPS secondary cache %ldkB, %s, linesize %d bytes.\n",
17131713 scache_size >> 10,
17141714 way_string[c->scache.ways], c->scache.linesz);
1715+
1716+ if (current_cpu_type() == CPU_BMIPS5000)
1717+ c->options |= MIPS_CPU_INCLUSIVE_CACHES;
17151718 }
1719+
17161720 #else
17171721 if (!(c->scache.flags & MIPS_CACHE_NOT_PRESENT))
17181722 panic("Dunno how to handle MIPS32 / MIPS64 second level cache");
arch/mips/oprofile/op_model_mipsxx.c+3−1
@@ -245,7 +245,6 @@ static int mipsxx_perfcount_handler(void) · 244 unmodified lines
245245
246246 switch (counters) {
247247 #define HANDLE_COUNTER(n) \
248− fallthrough; \
249248 case n + 1: \
250249 control = r_c0_perfctrl ## n(); \
251250 counter = r_c0_perfcntr ## n(); \
@@ -256,8 +255,11 @@ static int mipsxx_perfcount_handler(void) · 4 unmodified lines
256255 handled = IRQ_HANDLED; \
257256 }
258257 HANDLE_COUNTER(3)
258+ fallthrough;
259259 HANDLE_COUNTER(2)
260+ fallthrough;
260261 HANDLE_COUNTER(1)
262+ fallthrough;
261263 HANDLE_COUNTER(0)
262264 }
263265
arch/mips/sni/a20r.c+2−2
@@ -222,8 +222,8 @@ void __init sni_a20r_irq_init(void) · 221 unmodified lines
222222 irq_set_chip_and_handler(i, &a20r_irq_type, handle_level_irq);
223223 sni_hwint = a20r_hwint;
224224 change_c0_status(ST0_IM, IE_IRQ0);
225− if (request_irq(SNI_A20R_IRQ_BASE + 3, sni_isa_irq_handler, 0, "ISA",
226− NULL))
225+ if (request_irq(SNI_A20R_IRQ_BASE + 3, sni_isa_irq_handler,
226+ IRQF_SHARED, "ISA", sni_isa_irq_handler))
227227 pr_err("Failed to register ISA interrupt\n");
228228 }
229229
arch/nds32/include/asm/irqflags.h+5−0
@@ -34,3 +34,8 @@ static inline int arch_irqs_disabled_flags(unsigned long flags) · 33 unmodified lines
3434 {
3535 return !flags;
3636 }
37+
38+static inline int arch_irqs_disabled(void)
39+{
40+ return arch_irqs_disabled_flags(arch_local_save_flags());
41+}
arch/nds32/kernel/fpu.c+6−6
@@ -45,7 +45,7 @@ void save_fpu(struct task_struct *tsk) · 44 unmodified lines
4545 : /* no output */
4646 : "r" (&tsk->thread.fpu)
4747 : "memory");
48− /* fall through */
48+ fallthrough;
4949 case SP32_DP16_reg:
5050 asm volatile ("fsdi $fd15, [%0+0x78]\n\t"
5151 "fsdi $fd14, [%0+0x70]\n\t"
@@ -58,7 +58,7 @@ void save_fpu(struct task_struct *tsk) · 6 unmodified lines
5858 : /* no output */
5959 : "r" (&tsk->thread.fpu)
6060 : "memory");
61− /* fall through */
61+ fallthrough;
6262 case SP16_DP8_reg:
6363 asm volatile ("fsdi $fd7, [%0+0x38]\n\t"
6464 "fsdi $fd6, [%0+0x30]\n\t"
@@ -67,7 +67,7 @@ void save_fpu(struct task_struct *tsk) · 2 unmodified lines
6767 : /* no output */
6868 : "r" (&tsk->thread.fpu)
6969 : "memory");
70− /* fall through */
70+ fallthrough;
7171 case SP8_DP4_reg:
7272 asm volatile ("fsdi $fd3, [%1+0x18]\n\t"
7373 "fsdi $fd2, [%1+0x10]\n\t"
@@ -108,7 +108,7 @@ void load_fpu(const struct fpu_struct *fpregs) · 34 unmodified lines
108108 "fldi $fd16, [%0+0x80]\n\t"
109109 : /* no output */
110110 : "r" (fpregs));
111− /* fall through */
111+ fallthrough;
112112 case SP32_DP16_reg:
113113 asm volatile ("fldi $fd15, [%0+0x78]\n\t"
114114 "fldi $fd14, [%0+0x70]\n\t"
@@ -120,7 +120,7 @@ void load_fpu(const struct fpu_struct *fpregs) · 5 unmodified lines
120120 "fldi $fd8, [%0+0x40]\n\t"
121121 : /* no output */
122122 : "r" (fpregs));
123− /* fall through */
123+ fallthrough;
124124 case SP16_DP8_reg:
125125 asm volatile ("fldi $fd7, [%0+0x38]\n\t"
126126 "fldi $fd6, [%0+0x30]\n\t"
@@ -128,7 +128,7 @@ void load_fpu(const struct fpu_struct *fpregs) · 1 unmodified line
128128 "fldi $fd4, [%0+0x20]\n\t"
129129 : /* no output */
130130 : "r" (fpregs));
131− /* fall through */
131+ fallthrough;
132132 case SP8_DP4_reg:
133133 asm volatile ("fldi $fd3, [%1+0x18]\n\t"
134134 "fldi $fd2, [%1+0x10]\n\t"
arch/nds32/kernel/signal.c+2−2
@@ -316,7 +316,7 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) · 315 unmodified lines
316316 regs->uregs[0] = -EINTR;
317317 break;
318318 }
319− /* Else, fall through */
319+ fallthrough;
320320 case -ERESTARTNOINTR:
321321 regs->uregs[0] = regs->orig_r0;
322322 regs->ipc -= 4;
@@ -361,7 +361,7 @@ static void do_signal(struct pt_regs *regs) · 38 unmodified lines
361361 switch (regs->uregs[0]) {
362362 case -ERESTART_RESTARTBLOCK:
363363 regs->uregs[15] = __NR_restart_syscall;
364− /* Fall through */
364+ fallthrough;
365365 case -ERESTARTNOHAND:
366366 case -ERESTARTSYS:
367367 case -ERESTARTNOINTR:
arch/openrisc/kernel/signal.c+1−1
@@ -244,7 +244,7 @@ int do_signal(struct pt_regs *regs, int syscall) · 243 unmodified lines
244244 switch (retval) {
245245 case -ERESTART_RESTARTBLOCK:
246246 restart = -2;
247− /* Fall through */
247+ fallthrough;
248248 case -ERESTARTNOHAND:
249249 case -ERESTARTSYS:
250250 case -ERESTARTNOINTR:
arch/parisc/kernel/signal.c+1−1
@@ -502,7 +502,7 @@ syscall_restart(struct pt_regs *regs, struct k_sigaction *ka) · 501 unmodified lines
502502 regs->gr[28] = -EINTR;
503503 break;
504504 }
505− /* fallthrough */
505+ fallthrough;
506506 case -ERESTARTNOINTR:
507507 check_syscallno_in_delay_branch(regs);
508508 break;
arch/parisc/kernel/traps.c+5−6
@@ -437,7 +437,6 @@ void parisc_terminate(char *msg, struct pt_regs *regs, int code, unsigned long o · 436 unmodified lines
437437 break;
438438
439439 default:
440− /* Fall through */
441440 break;
442441
443442 }
@@ -644,12 +643,12 @@ void notrace handle_interruption(int code, struct pt_regs *regs) · 200 unmodified lines
644643
645644 case 15:
646645 /* Data TLB miss fault/Data page fault */
647− /* Fall through */
646+ fallthrough;
648647 case 16:
649648 /* Non-access instruction TLB miss fault */
650649 /* The instruction TLB entry needed for the target address of the FIC
651650 is absent, and hardware can't find it, so we get to cleanup */
652− /* Fall through */
651+ fallthrough;
653652 case 17:
654653 /* Non-access data TLB miss fault/Non-access data page fault */
655654 /* FIXME:
@@ -673,7 +672,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs) · 17 unmodified lines
673672 handle_unaligned(regs);
674673 return;
675674 }
676− /* Fall Through */
675+ fallthrough;
677676 case 26:
678677 /* PCXL: Data memory access rights trap */
679678 fault_address = regs->ior;
@@ -683,7 +682,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs) · 3 unmodified lines
683682 case 19:
684683 /* Data memory break trap */
685684 regs->gr[0] |= PSW_X; /* So we can single-step over the trap */
686− /* fall thru */
685+ fallthrough;
687686 case 21:
688687 /* Page reference trap */
689688 handle_gdb_break(regs, TRAP_HWBKPT);
@@ -730,7 +729,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs) · 40 unmodified lines
730729 }
731730 mmap_read_unlock(current->mm);
732731 }
733− /* Fall Through */
732+ fallthrough;
734733 case 27:
735734 /* Data memory protection ID trap */
736735 if (code == 27 && !user_mode(regs) &&
arch/parisc/mm/fault.c+2−2
@@ -67,7 +67,7 @@ parisc_acctyp(unsigned long code, unsigned int inst) · 66 unmodified lines
6767 case 0x30000000: /* coproc2 */
6868 if (bit22set(inst))
6969 return VM_WRITE;
70− /* fall through */
70+ fallthrough;
7171
7272 case 0x0: /* indexed/memory management */
7373 if (bit22set(inst)) {
@@ -370,7 +370,7 @@ bad_area: · 296 unmodified lines
370370 }
371371
372372 /* probably address is outside of mapped file */
373− /* fall through */
373+ fallthrough;
374374 case 17: /* NA data TLB miss / page fault */
375375 case 18: /* Unaligned access - PCXS only */
376376 signo = SIGBUS;
arch/powerpc/Kconfig+12−0
@@ -860,6 +860,18 @@ config PPC_SUBPAGE_PROT · 859 unmodified lines
860860
861861 If unsure, say N here.
862862
863+config PPC_PROT_SAO_LPAR
864+ bool "Support PROT_SAO mappings in LPARs"
865+ depends on PPC_BOOK3S_64
866+ help
867+ This option adds support for PROT_SAO mappings from userspace
868+ inside LPARs on supported CPUs.
869+
870+ This may cause issues when performing guest migration from
871+ a CPU that supports SAO to one that does not.
872+
873+ If unsure, say N here.
874+
863875 config PPC_COPRO_BASE
864876 bool
865877
arch/powerpc/include/asm/book3s/64/pgtable.h+3−5
@@ -20,13 +20,9 @@ · 19 unmodified lines
2020 #define _PAGE_RW (_PAGE_READ | _PAGE_WRITE)
2121 #define _PAGE_RWX (_PAGE_READ | _PAGE_WRITE | _PAGE_EXEC)
2222 #define _PAGE_PRIVILEGED 0x00008 /* kernel access only */
23−
24−#define _PAGE_CACHE_CTL 0x00030 /* Bits for the folowing cache modes */
25− /* No bits set is normal cacheable memory */
26− /* 0x00010 unused, is SAO bit on radix POWER9 */
23+#define _PAGE_SAO 0x00010 /* Strong access order */
2724 #define _PAGE_NON_IDEMPOTENT 0x00020 /* non idempotent memory */
2825 #define _PAGE_TOLERANT 0x00030 /* tolerant memory, cache inhibited */
29−
3026 #define _PAGE_DIRTY 0x00080 /* C: page changed */
3127 #define _PAGE_ACCESSED 0x00100 /* R: page referenced */
3228 /*
@@ -828,6 +824,8 @@ static inline void __set_pte_at(struct mm_struct *mm, unsigned long addr, · 795 unmodified lines
828824 return hash__set_pte_at(mm, addr, ptep, pte, percpu);
829825 }
830826
827+#define _PAGE_CACHE_CTL (_PAGE_SAO | _PAGE_NON_IDEMPOTENT | _PAGE_TOLERANT)
828+
831829 #define pgprot_noncached pgprot_noncached
832830 static inline pgprot_t pgprot_noncached(pgprot_t prot)
833831 {
arch/powerpc/include/asm/cputable.h+10−5
@@ -9,6 +9,11 @@ · 8 unmodified lines
99
1010 #ifndef __ASSEMBLY__
1111
12+/*
13+ * Added to include __machine_check_early_realmode_* functions
14+ */
15+#include <asm/mce.h>
16+
1217 /* This structure can grow, it's real size is used by head.S code
1318 * via the mkdefs mechanism.
1419 */
@@ -191,7 +196,7 @@ static inline void cpu_feature_keys_init(void) { } · 176 unmodified lines
191196 #define CPU_FTR_SPURR LONG_ASM_CONST(0x0000000001000000)
192197 #define CPU_FTR_DSCR LONG_ASM_CONST(0x0000000002000000)
193198 #define CPU_FTR_VSX LONG_ASM_CONST(0x0000000004000000)
194−// Free LONG_ASM_CONST(0x0000000008000000)
199+#define CPU_FTR_SAO LONG_ASM_CONST(0x0000000008000000)
195200 #define CPU_FTR_CP_USE_DCBTZ LONG_ASM_CONST(0x0000000010000000)
196201 #define CPU_FTR_UNALIGNED_LD_STD LONG_ASM_CONST(0x0000000020000000)
197202 #define CPU_FTR_ASYM_SMT LONG_ASM_CONST(0x0000000040000000)
@@ -436,7 +441,7 @@ static inline void cpu_feature_keys_init(void) { } · 238 unmodified lines
436441 CPU_FTR_MMCRA | CPU_FTR_SMT | \
437442 CPU_FTR_COHERENT_ICACHE | \
438443 CPU_FTR_PURR | CPU_FTR_SPURR | CPU_FTR_REAL_LE | \
439− CPU_FTR_DSCR | CPU_FTR_ASYM_SMT | \
444+ CPU_FTR_DSCR | CPU_FTR_SAO | CPU_FTR_ASYM_SMT | \
440445 CPU_FTR_STCX_CHECKS_ADDRESS | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \
441446 CPU_FTR_CFAR | CPU_FTR_HVMODE | \
442447 CPU_FTR_VMX_COPY | CPU_FTR_HAS_PPR | CPU_FTR_DABRX )
@@ -445,7 +450,7 @@ static inline void cpu_feature_keys_init(void) { } · 2 unmodified lines
445450 CPU_FTR_MMCRA | CPU_FTR_SMT | \
446451 CPU_FTR_COHERENT_ICACHE | \
447452 CPU_FTR_PURR | CPU_FTR_SPURR | CPU_FTR_REAL_LE | \
448− CPU_FTR_DSCR | \
453+ CPU_FTR_DSCR | CPU_FTR_SAO | \
449454 CPU_FTR_STCX_CHECKS_ADDRESS | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \
450455 CPU_FTR_CFAR | CPU_FTR_HVMODE | CPU_FTR_VMX_COPY | \
451456 CPU_FTR_DBELL | CPU_FTR_HAS_PPR | CPU_FTR_DAWR | \
@@ -456,7 +461,7 @@ static inline void cpu_feature_keys_init(void) { } · 4 unmodified lines
456461 CPU_FTR_MMCRA | CPU_FTR_SMT | \
457462 CPU_FTR_COHERENT_ICACHE | \
458463 CPU_FTR_PURR | CPU_FTR_SPURR | CPU_FTR_REAL_LE | \
459− CPU_FTR_DSCR | \
464+ CPU_FTR_DSCR | CPU_FTR_SAO | \
460465 CPU_FTR_STCX_CHECKS_ADDRESS | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \
461466 CPU_FTR_CFAR | CPU_FTR_HVMODE | CPU_FTR_VMX_COPY | \
462467 CPU_FTR_DBELL | CPU_FTR_HAS_PPR | CPU_FTR_ARCH_207S | \
@@ -474,7 +479,7 @@ static inline void cpu_feature_keys_init(void) { } · 11 unmodified lines
474479 CPU_FTR_MMCRA | CPU_FTR_SMT | \
475480 CPU_FTR_COHERENT_ICACHE | \
476481 CPU_FTR_PURR | CPU_FTR_SPURR | CPU_FTR_REAL_LE | \
477− CPU_FTR_DSCR | \
482+ CPU_FTR_DSCR | CPU_FTR_SAO | \
478483 CPU_FTR_STCX_CHECKS_ADDRESS | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \
479484 CPU_FTR_CFAR | CPU_FTR_HVMODE | CPU_FTR_VMX_COPY | \
480485 CPU_FTR_DBELL | CPU_FTR_HAS_PPR | CPU_FTR_ARCH_207S | \
arch/powerpc/include/asm/fixmap.h+1−1
@@ -52,7 +52,7 @@ enum fixed_addresses { · 51 unmodified lines
5252 FIX_HOLE,
5353 /* reserve the top 128K for early debugging purposes */
5454 FIX_EARLY_DEBUG_TOP = FIX_HOLE,
55− FIX_EARLY_DEBUG_BASE = FIX_EARLY_DEBUG_TOP+(ALIGN(SZ_128, PAGE_SIZE)/PAGE_SIZE)-1,
55+ FIX_EARLY_DEBUG_BASE = FIX_EARLY_DEBUG_TOP+(ALIGN(SZ_128K, PAGE_SIZE)/PAGE_SIZE)-1,
5656 #ifdef CONFIG_HIGHMEM
5757 FIX_KMAP_BEGIN, /* reserved pte's for temporary kernel mappings */
5858 FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1,
arch/powerpc/include/asm/hw_irq.h+4−7
@@ -200,17 +200,14 @@ static inline bool arch_irqs_disabled(void) · 199 unmodified lines
200200 #define powerpc_local_irq_pmu_save(flags) \
201201 do { \
202202 raw_local_irq_pmu_save(flags); \
203− trace_hardirqs_off(); \
203+ if (!raw_irqs_disabled_flags(flags)) \
204+ trace_hardirqs_off(); \
204205 } while(0)
205206 #define powerpc_local_irq_pmu_restore(flags) \
206207 do { \
207− if (raw_irqs_disabled_flags(flags)) { \
208− raw_local_irq_pmu_restore(flags); \
209− trace_hardirqs_off(); \
210− } else { \
208+ if (!raw_irqs_disabled_flags(flags)) \
211209 trace_hardirqs_on(); \
212− raw_local_irq_pmu_restore(flags); \
213− } \
210+ raw_local_irq_pmu_restore(flags); \
214211 } while(0)
215212 #else
216213 #define powerpc_local_irq_pmu_save(flags) \
arch/powerpc/include/asm/kasan.h+8−1
@@ -15,11 +15,18 @@ · 14 unmodified lines
1515 #ifndef __ASSEMBLY__
1616
1717 #include <asm/page.h>
18+#include <linux/sizes.h>
1819
1920 #define KASAN_SHADOW_SCALE_SHIFT 3
2021
22+#if defined(CONFIG_PPC_BOOK3S_32) && defined(CONFIG_MODULES) && defined(CONFIG_STRICT_KERNEL_RWX)
23+#define KASAN_KERN_START ALIGN_DOWN(PAGE_OFFSET - SZ_256M, SZ_256M)
24+#else
25+#define KASAN_KERN_START PAGE_OFFSET
26+#endif
27+
2128 #define KASAN_SHADOW_START (KASAN_SHADOW_OFFSET + \
22− (PAGE_OFFSET >> KASAN_SHADOW_SCALE_SHIFT))
29+ (KASAN_KERN_START >> KASAN_SHADOW_SCALE_SHIFT))
2330
2431 #define KASAN_SHADOW_OFFSET ASM_CONST(CONFIG_KASAN_SHADOW_OFFSET)
2532
arch/powerpc/include/asm/kvm_host.h+2−1
@@ -58,7 +58,8 @@ · 57 unmodified lines
5858 #define KVM_ARCH_WANT_MMU_NOTIFIER
5959
6060 extern int kvm_unmap_hva_range(struct kvm *kvm,
61− unsigned long start, unsigned long end);
61+ unsigned long start, unsigned long end,
62+ unsigned flags);
6263 extern int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
6364 extern int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
6465 extern int kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
arch/powerpc/include/asm/mce.h+7−0
@@ -210,6 +210,9 @@ struct mce_error_info { · 209 unmodified lines
210210 #define MCE_EVENT_RELEASE true
211211 #define MCE_EVENT_DONTRELEASE false
212212
213+struct pt_regs;
214+struct notifier_block;
215+
213216 extern void save_mce_event(struct pt_regs *regs, long handled,
214217 struct mce_error_info *mce_err, uint64_t nip,
215218 uint64_t addr, uint64_t phys_addr);
@@ -225,5 +228,9 @@ int mce_register_notifier(struct notifier_block *nb); · 9 unmodified lines
225228 int mce_unregister_notifier(struct notifier_block *nb);
226229 #ifdef CONFIG_PPC_BOOK3S_64
227230 void flush_and_reload_slb(void);
231+long __machine_check_early_realmode_p7(struct pt_regs *regs);
232+long __machine_check_early_realmode_p8(struct pt_regs *regs);
233+long __machine_check_early_realmode_p9(struct pt_regs *regs);
234+long __machine_check_early_realmode_p10(struct pt_regs *regs);
228235 #endif /* CONFIG_PPC_BOOK3S_64 */
229236 #endif /* __ASM_PPC64_MCE_H__ */
arch/powerpc/include/asm/mman.h+27−4
@@ -13,20 +13,43 @@ · 12 unmodified lines
1313 #include <linux/pkeys.h>
1414 #include <asm/cpu_has_feature.h>
1515
16−#ifdef CONFIG_PPC_MEM_KEYS
1716 static inline unsigned long arch_calc_vm_prot_bits(unsigned long prot,
1817 unsigned long pkey)
1918 {
20− return pkey_to_vmflag_bits(pkey);
19+#ifdef CONFIG_PPC_MEM_KEYS
20+ return (((prot & PROT_SAO) ? VM_SAO : 0) | pkey_to_vmflag_bits(pkey));
21+#else
22+ return ((prot & PROT_SAO) ? VM_SAO : 0);
23+#endif
2124 }
2225 #define arch_calc_vm_prot_bits(prot, pkey) arch_calc_vm_prot_bits(prot, pkey)
2326
2427 static inline pgprot_t arch_vm_get_page_prot(unsigned long vm_flags)
2528 {
26− return __pgprot(vmflag_to_pte_pkey_bits(vm_flags));
29+#ifdef CONFIG_PPC_MEM_KEYS
30+ return (vm_flags & VM_SAO) ?
31+ __pgprot(_PAGE_SAO | vmflag_to_pte_pkey_bits(vm_flags)) :
32+ __pgprot(0 | vmflag_to_pte_pkey_bits(vm_flags));
33+#else
34+ return (vm_flags & VM_SAO) ? __pgprot(_PAGE_SAO) : __pgprot(0);
35+#endif
2736 }
2837 #define arch_vm_get_page_prot(vm_flags) arch_vm_get_page_prot(vm_flags)
29−#endif
38+
39+static inline bool arch_validate_prot(unsigned long prot, unsigned long addr)
40+{
41+ if (prot & ~(PROT_READ | PROT_WRITE | PROT_EXEC | PROT_SEM | PROT_SAO))
42+ return false;
43+ if (prot & PROT_SAO) {
44+ if (!cpu_has_feature(CPU_FTR_SAO))
45+ return false;
46+ if (firmware_has_feature(FW_FEATURE_LPAR) &&
47+ !IS_ENABLED(CONFIG_PPC_PROT_SAO_LPAR))
48+ return false;
49+ }
50+ return true;
51+}
52+#define arch_validate_prot arch_validate_prot
3053
3154 #endif /* CONFIG_PPC64 */
3255 #endif /* _ASM_POWERPC_MMAN_H */
arch/powerpc/include/asm/nohash/64/pgtable.h+2−0
@@ -82,6 +82,8 @@ · 81 unmodified lines
8282 */
8383 #include <asm/nohash/pte-book3e.h>
8484
85+#define _PAGE_SAO 0
86+
8587 #define PTE_RPN_MASK (~((1UL << PTE_RPN_SHIFT) - 1))
8688
8789 /*
arch/powerpc/include/asm/perf_event.h+3−0
@@ -40,4 +40,7 @@ static inline bool is_sier_available(void) { return false; } · 39 unmodified lines
4040
4141 /* To support perf_regs sier update */
4242 extern bool is_sier_available(void);
43+/* To define perf extended regs mask value */
44+extern u64 PERF_REG_EXTENDED_MASK;
45+#define PERF_REG_EXTENDED_MASK PERF_REG_EXTENDED_MASK
4346 #endif
arch/powerpc/include/asm/perf_event_server.h+5−0
@@ -62,6 +62,11 @@ struct power_pmu { · 61 unmodified lines
6262 int *blacklist_ev;
6363 /* BHRB entries in the PMU */
6464 int bhrb_nr;
65+ /*
66+ * set this flag with `PERF_PMU_CAP_EXTENDED_REGS` if
67+ * the pmu supports extended perf regs capability
68+ */
69+ int capabilities;
6570 };
6671
6772 /*
arch/powerpc/include/uapi/asm/mman.h+1−1
@@ -11,7 +11,7 @@ · 10 unmodified lines
1111 #include <asm-generic/mman-common.h>
1212
1313
14−#define PROT_SAO 0x10 /* Unsupported since v5.9 */
14+#define PROT_SAO 0x10 /* Strong Access Ordering */
1515
1616 #define MAP_RENAME MAP_ANONYMOUS /* In SunOS terminology */
1717 #define MAP_NORESERVE 0x40 /* don't reserve swap pages */
arch/powerpc/include/uapi/asm/perf_regs.h+19−1
@@ -48,6 +48,24 @@ enum perf_event_powerpc_regs { · 47 unmodified lines
4848 PERF_REG_POWERPC_DSISR,
4949 PERF_REG_POWERPC_SIER,
5050 PERF_REG_POWERPC_MMCRA,
51− PERF_REG_POWERPC_MAX,
51+ /* Extended registers */
52+ PERF_REG_POWERPC_MMCR0,
53+ PERF_REG_POWERPC_MMCR1,
54+ PERF_REG_POWERPC_MMCR2,
55+ PERF_REG_POWERPC_MMCR3,
56+ PERF_REG_POWERPC_SIER2,
57+ PERF_REG_POWERPC_SIER3,
58+ /* Max regs without the extended regs */
59+ PERF_REG_POWERPC_MAX = PERF_REG_POWERPC_MMCRA + 1,
5260 };
61+
62+#define PERF_REG_PMU_MASK ((1ULL << PERF_REG_POWERPC_MAX) - 1)
63+
64+/* PERF_REG_EXTENDED_MASK value for CPU_FTR_ARCH_300 */
65+#define PERF_REG_PMU_MASK_300 (((1ULL << (PERF_REG_POWERPC_MMCR2 + 1)) - 1) - PERF_REG_PMU_MASK)
66+/* PERF_REG_EXTENDED_MASK value for CPU_FTR_ARCH_31 */
67+#define PERF_REG_PMU_MASK_31 (((1ULL << (PERF_REG_POWERPC_SIER3 + 1)) - 1) - PERF_REG_PMU_MASK)
68+
69+#define PERF_REG_MAX_ISA_300 (PERF_REG_POWERPC_MMCR2 + 1)
70+#define PERF_REG_MAX_ISA_31 (PERF_REG_POWERPC_SIER3 + 1)
5371 #endif /* _UAPI_ASM_POWERPC_PERF_REGS_H */
arch/powerpc/kernel/cputable.c+19−3
@@ -72,9 +72,6 @@ extern void __setup_cpu_power9(unsigned long offset, struct cpu_spec* spec); · 71 unmodified lines
7272 extern void __restore_cpu_power9(void);
7373 extern void __setup_cpu_power10(unsigned long offset, struct cpu_spec* spec);
7474 extern void __restore_cpu_power10(void);
75−extern long __machine_check_early_realmode_p7(struct pt_regs *regs);
76−extern long __machine_check_early_realmode_p8(struct pt_regs *regs);
77−extern long __machine_check_early_realmode_p9(struct pt_regs *regs);
7875 #endif /* CONFIG_PPC64 */
7976 #if defined(CONFIG_E500)
8077 extern void __setup_cpu_e5500(unsigned long offset, struct cpu_spec* spec);
@@ -542,6 +539,25 @@ static struct cpu_spec __initdata cpu_specs[] = { · 461 unmodified lines
542539 .machine_check_early = __machine_check_early_realmode_p9,
543540 .platform = "power9",
544541 },
542+ { /* Power10 */
543+ .pvr_mask = 0xffff0000,
544+ .pvr_value = 0x00800000,
545+ .cpu_name = "POWER10 (raw)",
546+ .cpu_features = CPU_FTRS_POWER10,
547+ .cpu_user_features = COMMON_USER_POWER10,
548+ .cpu_user_features2 = COMMON_USER2_POWER10,
549+ .mmu_features = MMU_FTRS_POWER10,
550+ .icache_bsize = 128,
551+ .dcache_bsize = 128,
552+ .num_pmcs = 6,
553+ .pmc_type = PPC_PMC_IBM,
554+ .oprofile_cpu_type = "ppc64/power10",
555+ .oprofile_type = PPC_OPROFILE_INVALID,
556+ .cpu_setup = __setup_cpu_power10,
557+ .cpu_restore = __restore_cpu_power10,
558+ .machine_check_early = __machine_check_early_realmode_p10,
559+ .platform = "power10",
560+ },
545561 { /* Cell Broadband Engine */
546562 .pvr_mask = 0xffff0000,
547563 .pvr_value = 0x00700000,
arch/powerpc/kernel/dt_cpu_ftrs.c+1−5
@@ -64,10 +64,6 @@ struct dt_cpu_feature { · 63 unmodified lines
6464 * Set up the base CPU
6565 */
6666
67−extern long __machine_check_early_realmode_p8(struct pt_regs *regs);
68−extern long __machine_check_early_realmode_p9(struct pt_regs *regs);
69−extern long __machine_check_early_realmode_p10(struct pt_regs *regs);
70−
7167 static int hv_mode;
7268
7369 static struct {
@@ -657,7 +653,7 @@ static struct dt_cpu_feature_match __initdata · 583 unmodified lines
657653 {"processor-control-facility-v3", feat_enable_dbell, CPU_FTR_DBELL},
658654 {"processor-utilization-of-resources-register", feat_enable_purr, 0},
659655 {"no-execute", feat_enable, 0},
660− /* strong-access-ordering is unused */
656+ {"strong-access-ordering", feat_enable, CPU_FTR_SAO},
661657 {"cache-inhibited-large-page", feat_enable_large_ci, 0},
662658 {"coprocessor-icswx", feat_enable, 0},
663659 {"hypervisor-virtualization-interrupt", feat_enable_hvi, 0},
arch/powerpc/kernel/entry_64.S+4−0
@@ -113,6 +113,10 @@ END_FTR_SECTION_IFSET(CPU_FTR_TM) · 112 unmodified lines
113113 ld r11,exception_marker@toc(r2)
114114 std r11,-16(r10) /* "regshere" marker */
115115
116+BEGIN_FTR_SECTION
117+ HMT_MEDIUM
118+END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
119+
116120 /*
117121 * RECONCILE_IRQ_STATE without calling trace_hardirqs_off(), which
118122 * would clobber syscall parameters. Also we always enter with IRQs
arch/powerpc/kernel/process.c+9−3
@@ -548,7 +548,7 @@ void notrace restore_math(struct pt_regs *regs) · 547 unmodified lines
548548 * are live for the user thread).
549549 */
550550 if ((!(msr & MSR_FP)) && should_restore_fp())
551− new_msr |= MSR_FP | current->thread.fpexc_mode;
551+ new_msr |= MSR_FP;
552552
553553 if ((!(msr & MSR_VEC)) && should_restore_altivec())
554554 new_msr |= MSR_VEC;
@@ -559,11 +559,17 @@ void notrace restore_math(struct pt_regs *regs) · 4 unmodified lines
559559 }
560560
561561 if (new_msr) {
562+ unsigned long fpexc_mode = 0;
563+
562564 msr_check_and_set(new_msr);
563565
564− if (new_msr & MSR_FP)
566+ if (new_msr & MSR_FP) {
565567 do_restore_fp();
566568
569+ // This also covers VSX, because VSX implies FP
570+ fpexc_mode = current->thread.fpexc_mode;
571+ }
572+
567573 if (new_msr & MSR_VEC)
568574 do_restore_altivec();
569575
@@ -572,7 +578,7 @@ void notrace restore_math(struct pt_regs *regs) · 2 unmodified lines
572578
573579 msr_check_and_clear(new_msr);
574580
575− regs->msr |= new_msr;
581+ regs->msr |= new_msr | fpexc_mode;
576582 }
577583 }
578584 #endif
arch/powerpc/kernel/setup-common.c+1−0
@@ -311,6 +311,7 @@ static int show_cpuinfo(struct seq_file *m, void *v) · 310 unmodified lines
311311 min = pvr & 0xFF;
312312 break;
313313 case 0x004e: /* POWER9 bits 12-15 give chip type */
314+ case 0x0080: /* POWER10 bit 12 gives SMT8/4 */
314315 maj = (pvr >> 8) & 0x0F;
315316 min = pvr & 0xFF;
316317 break;
arch/powerpc/kvm/book3s.c+2−1
@@ -834,7 +834,8 @@ void kvmppc_core_commit_memory_region(struct kvm *kvm, · 833 unmodified lines
834834 kvm->arch.kvm_ops->commit_memory_region(kvm, mem, old, new, change);
835835 }
836836
837−int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end)
837+int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end,
838+ unsigned flags)
838839 {
839840 return kvm->arch.kvm_ops->unmap_hva_range(kvm, start, end);
840841 }
arch/powerpc/kvm/e500_mmu_host.c+2−1
@@ -734,7 +734,8 @@ static int kvm_unmap_hva(struct kvm *kvm, unsigned long hva) · 733 unmodified lines
734734 return 0;
735735 }
736736
737−int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end)
737+int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end,
738+ unsigned flags)
738739 {
739740 /* kvm_unmap_hva flushes everything anyways */
740741 kvm_unmap_hva(kvm, start);
arch/powerpc/mm/book3s32/mmu.c+8−1
@@ -191,10 +191,17 @@ static bool is_module_segment(unsigned long addr) · 190 unmodified lines
191191 {
192192 if (!IS_ENABLED(CONFIG_MODULES))
193193 return false;
194+#ifdef MODULES_VADDR
195+ if (addr < ALIGN_DOWN(MODULES_VADDR, SZ_256M))
196+ return false;
197+ if (addr > ALIGN(MODULES_END, SZ_256M) - 1)
198+ return false;
199+#else
194200 if (addr < ALIGN_DOWN(VMALLOC_START, SZ_256M))
195201 return false;
196− if (addr >= ALIGN(VMALLOC_END, SZ_256M))
202+ if (addr > ALIGN(VMALLOC_END, SZ_256M) - 1)
197203 return false;
204+#endif
198205 return true;
199206 }
200207
arch/powerpc/mm/book3s64/hash_utils.c+5−1
@@ -232,6 +232,8 @@ unsigned long htab_convert_pte_flags(unsigned long pteflags) · 231 unmodified lines
232232 rflags |= HPTE_R_I;
233233 else if ((pteflags & _PAGE_CACHE_CTL) == _PAGE_NON_IDEMPOTENT)
234234 rflags |= (HPTE_R_I | HPTE_R_G);
235+ else if ((pteflags & _PAGE_CACHE_CTL) == _PAGE_SAO)
236+ rflags |= (HPTE_R_W | HPTE_R_I | HPTE_R_M);
235237 else
236238 /*
237239 * Add memory coherence if cache inhibited is not set
@@ -1115,8 +1117,10 @@ void hash__early_init_mmu_secondary(void) · 877 unmodified lines
11151117 && cpu_has_feature(CPU_FTR_HVMODE))
11161118 tlbiel_all();
11171119
1118− if (IS_ENABLED(CONFIG_PPC_MEM_KEYS) && mmu_has_feature(MMU_FTR_PKEY))
1120+#ifdef CONFIG_PPC_MEM_KEYS
1121+ if (mmu_has_feature(MMU_FTR_PKEY))
11191122 mtspr(SPRN_UAMOR, default_uamor);
1123+#endif
11201124 }
11211125 #endif /* CONFIG_SMP */
11221126
arch/powerpc/net/bpf_jit_comp.c+1−1
@@ -475,7 +475,7 @@ static int bpf_jit_build_body(struct bpf_prog *fp, u32 *image, · 474 unmodified lines
475475 case BPF_JMP | BPF_JSET | BPF_K:
476476 case BPF_JMP | BPF_JSET | BPF_X:
477477 true_cond = COND_NE;
478− /* Fall through */
478+ fallthrough;
479479 cond_branch:
480480 /* same targets, can avoid doing the test :) */
481481 if (filter[i].jt == filter[i].jf) {
arch/powerpc/perf/core-book3s.c+19−5
@@ -1557,9 +1557,16 @@ nocheck: · 1556 unmodified lines
15571557 ret = 0;
15581558 out:
15591559 if (has_branch_stack(event)) {
1560− power_pmu_bhrb_enable(event);
1561− cpuhw->bhrb_filter = ppmu->bhrb_filter_map(
1562− event->attr.branch_sample_type);
1560+ u64 bhrb_filter = -1;
1561+
1562+ if (ppmu->bhrb_filter_map)
1563+ bhrb_filter = ppmu->bhrb_filter_map(
1564+ event->attr.branch_sample_type);
1565+
1566+ if (bhrb_filter != -1) {
1567+ cpuhw->bhrb_filter = bhrb_filter;
1568+ power_pmu_bhrb_enable(event);
1569+ }
15631570 }
15641571
15651572 perf_pmu_enable(event->pmu);
@@ -1881,7 +1888,6 @@ static int power_pmu_event_init(struct perf_event *event) · 315 unmodified lines
18811888 int n;
18821889 int err;
18831890 struct cpu_hw_events *cpuhw;
1884− u64 bhrb_filter;
18851891
18861892 if (!ppmu)
18871893 return -ENOENT;
@@ -1987,7 +1993,10 @@ static int power_pmu_event_init(struct perf_event *event) · 99 unmodified lines
19871993 err = power_check_constraints(cpuhw, events, cflags, n + 1);
19881994
19891995 if (has_branch_stack(event)) {
1990− bhrb_filter = ppmu->bhrb_filter_map(
1996+ u64 bhrb_filter = -1;
1997+
1998+ if (ppmu->bhrb_filter_map)
1999+ bhrb_filter = ppmu->bhrb_filter_map(
19912000 event->attr.branch_sample_type);
19922001
19932002 if (bhrb_filter == -1) {
@@ -2141,6 +2150,10 @@ static void record_and_restart(struct perf_event *event, unsigned long val, · 147 unmodified lines
21412150
21422151 if (perf_event_overflow(event, &data, regs))
21432152 power_pmu_stop(event, 0);
2153+ } else if (period) {
2154+ /* Account for interrupt in case of invalid SIAR */
2155+ if (perf_event_account_interrupt(event))
2156+ power_pmu_stop(event, 0);
21442157 }
21452158 }
21462159
@@ -2323,6 +2336,7 @@ int register_power_pmu(struct power_pmu *pmu) · 176 unmodified lines
23232336 pmu->name);
23242337
23252338 power_pmu.attr_groups = ppmu->attr_groups;
2339+ power_pmu.capabilities |= (ppmu->capabilities & PERF_PMU_CAP_EXTENDED_REGS);
23262340
23272341 #ifdef MSR_HV
23282342 /*
arch/powerpc/perf/hv-24x7.c+10−1
@@ -1128,6 +1128,15 @@ static struct bin_attribute *if_bin_attrs[] = { · 1127 unmodified lines
11281128 NULL,
11291129 };
11301130
1131+static struct attribute *cpumask_attrs[] = {
1132+ &dev_attr_cpumask.attr,
1133+ NULL,
1134+};
1135+
1136+static struct attribute_group cpumask_attr_group = {
1137+ .attrs = cpumask_attrs,
1138+};
1139+
11311140 static struct attribute *if_attrs[] = {
11321141 &dev_attr_catalog_len.attr,
11331142 &dev_attr_catalog_version.attr,
@@ -1135,7 +1144,6 @@ static struct attribute *if_attrs[] = { · 1 unmodified line
11351144 &dev_attr_sockets.attr,
11361145 &dev_attr_chipspersocket.attr,
11371146 &dev_attr_coresperchip.attr,
1138− &dev_attr_cpumask.attr,
11391147 NULL,
11401148 };
11411149
@@ -1151,6 +1159,7 @@ static const struct attribute_group *attr_groups[] = { · 9 unmodified lines
11511159 &event_desc_group,
11521160 &event_long_desc_group,
11531161 &if_group,
1162+ &cpumask_attr_group,
11541163 NULL,
11551164 };
11561165
arch/powerpc/perf/imc-pmu.c+2−2
@@ -1289,7 +1289,7 @@ static int trace_imc_prepare_sample(struct trace_imc_data *mem, · 1288 unmodified lines
12891289 header->misc = 0;
12901290
12911291 if (cpu_has_feature(CPU_FTR_ARCH_31)) {
1292− switch (IMC_TRACE_RECORD_VAL_HVPR(mem->val)) {
1292+ switch (IMC_TRACE_RECORD_VAL_HVPR(be64_to_cpu(READ_ONCE(mem->val)))) {
12931293 case 0:/* when MSR HV and PR not set in the trace-record */
12941294 header->misc |= PERF_RECORD_MISC_GUEST_KERNEL;
12951295 break;
@@ -1297,7 +1297,7 @@ static int trace_imc_prepare_sample(struct trace_imc_data *mem, · 1 unmodified line
12971297 header->misc |= PERF_RECORD_MISC_GUEST_USER;
12981298 break;
12991299 case 2: /* MSR HV is 1 and PR is 0 */
1300− header->misc |= PERF_RECORD_MISC_HYPERVISOR;
1300+ header->misc |= PERF_RECORD_MISC_KERNEL;
13011301 break;
13021302 case 3: /* MSR HV is 1 and PR is 1 */
13031303 header->misc |= PERF_RECORD_MISC_USER;
arch/powerpc/perf/perf_regs.c+41−3
@@ -13,9 +13,11 @@ · 12 unmodified lines
1313 #include <asm/ptrace.h>
1414 #include <asm/perf_regs.h>
1515
16+u64 PERF_REG_EXTENDED_MASK;
17+
1618 #define PT_REGS_OFFSET(id, r) [id] = offsetof(struct pt_regs, r)
1719
18−#define REG_RESERVED (~((1ULL << PERF_REG_POWERPC_MAX) - 1))
20+#define REG_RESERVED (~(PERF_REG_EXTENDED_MASK | PERF_REG_PMU_MASK))
1921
2022 static unsigned int pt_regs_offset[PERF_REG_POWERPC_MAX] = {
2123 PT_REGS_OFFSET(PERF_REG_POWERPC_R0, gpr[0]),
@@ -69,10 +71,36 @@ static unsigned int pt_regs_offset[PERF_REG_POWERPC_MAX] = { · 47 unmodified lines
6971 PT_REGS_OFFSET(PERF_REG_POWERPC_MMCRA, dsisr),
7072 };
7173
74+/* Function to return the extended register values */
75+static u64 get_ext_regs_value(int idx)
76+{
77+ switch (idx) {
78+ case PERF_REG_POWERPC_MMCR0:
79+ return mfspr(SPRN_MMCR0);
80+ case PERF_REG_POWERPC_MMCR1:
81+ return mfspr(SPRN_MMCR1);
82+ case PERF_REG_POWERPC_MMCR2:
83+ return mfspr(SPRN_MMCR2);
84+#ifdef CONFIG_PPC64
85+ case PERF_REG_POWERPC_MMCR3:
86+ return mfspr(SPRN_MMCR3);
87+ case PERF_REG_POWERPC_SIER2:
88+ return mfspr(SPRN_SIER2);
89+ case PERF_REG_POWERPC_SIER3:
90+ return mfspr(SPRN_SIER3);
91+#endif
92+ default: return 0;
93+ }
94+}
95+
7296 u64 perf_reg_value(struct pt_regs *regs, int idx)
7397 {
74− if (WARN_ON_ONCE(idx >= PERF_REG_POWERPC_MAX))
75− return 0;
98+ u64 perf_reg_extended_max = PERF_REG_POWERPC_MAX;
99+
100+ if (cpu_has_feature(CPU_FTR_ARCH_31))
101+ perf_reg_extended_max = PERF_REG_MAX_ISA_31;
102+ else if (cpu_has_feature(CPU_FTR_ARCH_300))
103+ perf_reg_extended_max = PERF_REG_MAX_ISA_300;
76104
77105 if (idx == PERF_REG_POWERPC_SIER &&
78106 (IS_ENABLED(CONFIG_FSL_EMB_PERF_EVENT) ||
@@ -85,6 +113,16 @@ u64 perf_reg_value(struct pt_regs *regs, int idx) · 6 unmodified lines
85113 IS_ENABLED(CONFIG_PPC32)))
86114 return 0;
87115
116+ if (idx >= PERF_REG_POWERPC_MAX && idx < perf_reg_extended_max)
117+ return get_ext_regs_value(idx);
118+
119+ /*
120+ * If the idx is referring to value beyond the
121+ * supported registers, return 0 with a warning
122+ */
123+ if (WARN_ON_ONCE(idx >= perf_reg_extended_max))
124+ return 0;
125+
88126 return regs_get_register(regs, pt_regs_offset[idx]);
89127 }
90128
arch/powerpc/perf/power10-pmu.c+6−0
@@ -87,6 +87,8 @@ · 86 unmodified lines
8787 #define POWER10_MMCRA_IFM3 0x00000000C0000000UL
8888 #define POWER10_MMCRA_BHRB_MASK 0x00000000C0000000UL
8989
90+extern u64 PERF_REG_EXTENDED_MASK;
91+
9092 /* Table of alternatives, sorted by column 0 */
9193 static const unsigned int power10_event_alternatives[][MAX_ALT] = {
9294 { PM_RUN_CYC_ALT, PM_RUN_CYC },
@@ -397,6 +399,7 @@ static struct power_pmu power10_pmu = { · 304 unmodified lines
397399 .cache_events = &power10_cache_events,
398400 .attr_groups = power10_pmu_attr_groups,
399401 .bhrb_nr = 32,
402+ .capabilities = PERF_PMU_CAP_EXTENDED_REGS,
400403 };
401404
402405 int init_power10_pmu(void)
@@ -408,6 +411,9 @@ int init_power10_pmu(void) · 5 unmodified lines
408411 strcmp(cur_cpu_spec->oprofile_cpu_type, "ppc64/power10"))
409412 return -ENODEV;
410413
414+ /* Set the PERF_REG_EXTENDED_MASK here */
415+ PERF_REG_EXTENDED_MASK = PERF_REG_PMU_MASK_31;
416+
411417 rc = register_power_pmu(&power10_pmu);
412418 if (rc)
413419 return rc;
arch/powerpc/perf/power9-pmu.c+6−0
@@ -90,6 +90,8 @@ enum { · 89 unmodified lines
9090 #define POWER9_MMCRA_IFM3 0x00000000C0000000UL
9191 #define POWER9_MMCRA_BHRB_MASK 0x00000000C0000000UL
9292
93+extern u64 PERF_REG_EXTENDED_MASK;
94+
9395 /* Nasty Power9 specific hack */
9496 #define PVR_POWER9_CUMULUS 0x00002000
9597
@@ -434,6 +436,7 @@ static struct power_pmu power9_pmu = { · 338 unmodified lines
434436 .cache_events = &power9_cache_events,
435437 .attr_groups = power9_pmu_attr_groups,
436438 .bhrb_nr = 32,
439+ .capabilities = PERF_PMU_CAP_EXTENDED_REGS,
437440 };
438441
439442 int init_power9_pmu(void)
@@ -457,6 +460,9 @@ int init_power9_pmu(void) · 17 unmodified lines
457460 }
458461 }
459462
463+ /* Set the PERF_REG_EXTENDED_MASK here */
464+ PERF_REG_EXTENDED_MASK = PERF_REG_PMU_MASK_300;
465+
460466 rc = register_power_pmu(&power9_pmu);
461467 if (rc)
462468 return rc;
arch/powerpc/platforms/Kconfig.cputype+1−1
@@ -36,7 +36,7 @@ config PPC_BOOK3S_6xx · 35 unmodified lines
3636 select PPC_HAVE_PMU_SUPPORT
3737 select PPC_HAVE_KUEP
3838 select PPC_HAVE_KUAP
39− select HAVE_ARCH_VMAP_STACK
39+ select HAVE_ARCH_VMAP_STACK if !ADB_PMU
4040
4141 config PPC_BOOK3S_601
4242 bool "PowerPC 601"
arch/powerpc/platforms/powernv/idle.c+1−1
@@ -1223,7 +1223,7 @@ static void __init pnv_probe_idle_states(void) · 1222 unmodified lines
12231223 return;
12241224 }
12251225
1226− if (pvr_version_is(PVR_POWER9))
1226+ if (cpu_has_feature(CPU_FTR_ARCH_300))
12271227 pnv_power9_idle_init();
12281228
12291229 for (i = 0; i < nr_pnv_idle_states; i++)
arch/powerpc/platforms/powernv/pci-ioda.c+1−1
@@ -2705,7 +2705,7 @@ void pnv_pci_ioda2_release_pe_dma(struct pnv_ioda_pe *pe) · 2704 unmodified lines
27052705 struct iommu_table *tbl = pe->table_group.tables[0];
27062706 int64_t rc;
27072707
2708− if (pe->dma_setup_done)
2708+ if (!pe->dma_setup_done)
27092709 return;
27102710
27112711 rc = pnv_pci_ioda2_unset_window(&pe->table_group, 0);
arch/powerpc/platforms/pseries/hotplug-cpu.c+12−6
@@ -107,22 +107,28 @@ static int pseries_cpu_disable(void) · 106 unmodified lines
107107 */
108108 static void pseries_cpu_die(unsigned int cpu)
109109 {
110− int tries;
111110 int cpu_status = 1;
112111 unsigned int pcpu = get_hard_smp_processor_id(cpu);
112+ unsigned long timeout = jiffies + msecs_to_jiffies(120000);
113113
114− for (tries = 0; tries < 25; tries++) {
114+ while (true) {
115115 cpu_status = smp_query_cpu_stopped(pcpu);
116116 if (cpu_status == QCSS_STOPPED ||
117117 cpu_status == QCSS_HARDWARE_ERROR)
118118 break;
119− cpu_relax();
120119
120+ if (time_after(jiffies, timeout)) {
121+ pr_warn("CPU %i (hwid %i) didn't die after 120 seconds\n",
122+ cpu, pcpu);
123+ timeout = jiffies + msecs_to_jiffies(120000);
124+ }
125+
126+ cond_resched();
121127 }
122128
123− if (cpu_status != 0) {
124− printk("Querying DEAD? cpu %i (%i) shows %i\n",
125− cpu, pcpu, cpu_status);
129+ if (cpu_status == QCSS_HARDWARE_ERROR) {
130+ pr_warn("CPU %i (hwid %i) reported error while dying\n",
131+ cpu, pcpu);
126132 }
127133
128134 /* Isolation and deallocation are definitely done by
arch/powerpc/platforms/pseries/ras.c+0−1
@@ -184,7 +184,6 @@ static void handle_system_shutdown(char event_modifier) · 183 unmodified lines
184184 case EPOW_SHUTDOWN_ON_UPS:
185185 pr_emerg("Loss of system power detected. System is running on"
186186 " UPS/battery. Check RTAS error log for details\n");
187− orderly_poweroff(true);
188187 break;
189188
190189 case EPOW_SHUTDOWN_LOSS_OF_CRITICAL_FUNCTIONS:
arch/riscv/Kconfig+1−1
@@ -81,7 +81,7 @@ config RISCV · 80 unmodified lines
8181 select PCI_DOMAINS_GENERIC if PCI
8282 select PCI_MSI if PCI
8383 select RISCV_INTC
84− select RISCV_TIMER
84+ select RISCV_TIMER if RISCV_SBI
8585 select SPARSEMEM_STATIC if 32BIT
8686 select SPARSE_IRQ
8787 select SYSCTL_EXCEPTION_TRACE
arch/riscv/Kconfig.socs+2−0
@@ -12,6 +12,7 @@ config SOC_SIFIVE · 11 unmodified lines
1212
1313 config SOC_VIRT
1414 bool "QEMU Virt Machine"
15+ select CLINT_TIMER if RISCV_M_MODE
1516 select POWER_RESET
1617 select POWER_RESET_SYSCON
1718 select POWER_RESET_SYSCON_POWEROFF
@@ -24,6 +25,7 @@ config SOC_VIRT · 6 unmodified lines
2425 config SOC_KENDRYTE
2526 bool "Kendryte K210 SoC"
2627 depends on !MMU
28+ select CLINT_TIMER if RISCV_M_MODE
2729 select SERIAL_SIFIVE if TTY
2830 select SERIAL_SIFIVE_CONSOLE if TTY
2931 select SIFIVE_PLIC
arch/riscv/configs/nommu_virt_defconfig+2−5
@@ -26,6 +26,7 @@ CONFIG_EXPERT=y · 25 unmodified lines
2626 CONFIG_SLOB=y
2727 # CONFIG_SLAB_MERGE_DEFAULT is not set
2828 # CONFIG_MMU is not set
29+CONFIG_SOC_VIRT=y
2930 CONFIG_MAXPHYSMEM_2GB=y
3031 CONFIG_SMP=y
3132 CONFIG_CMDLINE="root=/dev/vda rw earlycon=uart8250,mmio,0x10000000,115200n8 console=ttyS0"
@@ -49,7 +50,6 @@ CONFIG_VIRTIO_BLK=y · 17 unmodified lines
4950 # CONFIG_SERIO is not set
5051 # CONFIG_LEGACY_PTYS is not set
5152 # CONFIG_LDISC_AUTOLOAD is not set
52−# CONFIG_DEVMEM is not set
5353 CONFIG_SERIAL_8250=y
5454 # CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
5555 CONFIG_SERIAL_8250_CONSOLE=y
@@ -57,16 +57,13 @@ CONFIG_SERIAL_8250_NR_UARTS=1 · 1 unmodified line
5757 CONFIG_SERIAL_8250_RUNTIME_UARTS=1
5858 CONFIG_SERIAL_OF_PLATFORM=y
5959 # CONFIG_HW_RANDOM is not set
60+# CONFIG_DEVMEM is not set
6061 # CONFIG_HWMON is not set
61−# CONFIG_LCD_CLASS_DEVICE is not set
62−# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
6362 # CONFIG_VGA_CONSOLE is not set
6463 # CONFIG_HID is not set
6564 # CONFIG_USB_SUPPORT is not set
6665 CONFIG_VIRTIO_MMIO=y
6766 CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
68−CONFIG_SIFIVE_PLIC=y
69−# CONFIG_VALIDATE_FS_PARSER is not set
7067 CONFIG_EXT2_FS=y
7168 # CONFIG_DNOTIFY is not set
7269 # CONFIG_INOTIFY_USER is not set
arch/riscv/configs/rv32_defconfig+5−0
@@ -14,6 +14,7 @@ CONFIG_CHECKPOINT_RESTORE=y · 13 unmodified lines
1414 CONFIG_BLK_DEV_INITRD=y
1515 CONFIG_EXPERT=y
1616 CONFIG_BPF_SYSCALL=y
17+CONFIG_SOC_SIFIVE=y
1718 CONFIG_SOC_VIRT=y
1819 CONFIG_ARCH_RV32I=y
1920 CONFIG_SMP=y
@@ -62,6 +63,8 @@ CONFIG_HVC_RISCV_SBI=y · 42 unmodified lines
6263 CONFIG_VIRTIO_CONSOLE=y
6364 CONFIG_HW_RANDOM=y
6465 CONFIG_HW_RANDOM_VIRTIO=y
66+CONFIG_SPI=y
67+CONFIG_SPI_SIFIVE=y
6568 # CONFIG_PTP_1588_CLOCK is not set
6669 CONFIG_POWER_RESET=y
6770 CONFIG_DRM=y
@@ -77,6 +80,8 @@ CONFIG_USB_OHCI_HCD=y · 9 unmodified lines
7780 CONFIG_USB_OHCI_HCD_PLATFORM=y
7881 CONFIG_USB_STORAGE=y
7982 CONFIG_USB_UAS=y
83+CONFIG_MMC=y
84+CONFIG_MMC_SPI=y
8085 CONFIG_RTC_CLASS=y
8186 CONFIG_VIRTIO_PCI=y
8287 CONFIG_VIRTIO_BALLOON=y
arch/riscv/include/asm/clint.h+0−39
@@ -1,39 +0,0 @@
1−/* SPDX-License-Identifier: GPL-2.0 */
2−#ifndef _ASM_RISCV_CLINT_H
3−#define _ASM_RISCV_CLINT_H 1
4−
5−#include <linux/io.h>
6−#include <linux/smp.h>
7−
8−#ifdef CONFIG_RISCV_M_MODE
9−extern u32 __iomem *clint_ipi_base;
10−
11−void clint_init_boot_cpu(void);
12−
13−static inline void clint_send_ipi_single(unsigned long hartid)
14−{
15− writel(1, clint_ipi_base + hartid);
16−}
17−
18−static inline void clint_send_ipi_mask(const struct cpumask *mask)
19−{
20− int cpu;
21−
22− for_each_cpu(cpu, mask)
23− clint_send_ipi_single(cpuid_to_hartid_map(cpu));
24−}
25−
26−static inline void clint_clear_ipi(unsigned long hartid)
27−{
28− writel(0, clint_ipi_base + hartid);
29−}
30−#else /* CONFIG_RISCV_M_MODE */
31−#define clint_init_boot_cpu() do { } while (0)
32−
33−/* stubs to for code is only reachable under IS_ENABLED(CONFIG_RISCV_M_MODE): */
34−void clint_send_ipi_single(unsigned long hartid);
35−void clint_send_ipi_mask(const struct cpumask *hartid_mask);
36−void clint_clear_ipi(unsigned long hartid);
37−#endif /* CONFIG_RISCV_M_MODE */
38−
39−#endif /* _ASM_RISCV_CLINT_H */
arch/riscv/include/asm/smp.h+19−0
@@ -15,6 +15,11 @@ · 14 unmodified lines
1515 struct seq_file;
1616 extern unsigned long boot_cpu_hartid;
1717
18+struct riscv_ipi_ops {
19+ void (*ipi_inject)(const struct cpumask *target);
20+ void (*ipi_clear)(void);
21+};
22+
1823 #ifdef CONFIG_SMP
1924 /*
2025 * Mapping between linux logical cpu index and hartid.
@@ -40,6 +45,12 @@ void arch_send_call_function_single_ipi(int cpu); · 19 unmodified lines
4045 int riscv_hartid_to_cpuid(int hartid);
4146 void riscv_cpuid_to_hartid_mask(const struct cpumask *in, struct cpumask *out);
4247
48+/* Set custom IPI operations */
49+void riscv_set_ipi_ops(struct riscv_ipi_ops *ops);
50+
51+/* Clear IPI for current CPU */
52+void riscv_clear_ipi(void);
53+
4354 /* Secondary hart entry */
4455 asmlinkage void smp_callin(void);
4556
@@ -81,6 +92,14 @@ static inline void riscv_cpuid_to_hartid_mask(const struct cpumask *in, · 35 unmodified lines
8192 cpumask_set_cpu(boot_cpu_hartid, out);
8293 }
8394
95+static inline void riscv_set_ipi_ops(struct riscv_ipi_ops *ops)
96+{
97+}
98+
99+static inline void riscv_clear_ipi(void)
100+{
101+}
102+
84103 #endif /* CONFIG_SMP */
85104
86105 #if defined(CONFIG_HOTPLUG_CPU) && (CONFIG_SMP)
arch/riscv/include/asm/timex.h+7−21
@@ -7,41 +7,27 @@ · 6 unmodified lines
77 #define _ASM_RISCV_TIMEX_H
88
99 #include <asm/csr.h>
10−#include <asm/mmio.h>
1110
1211 typedef unsigned long cycles_t;
1312
14−extern u64 __iomem *riscv_time_val;
15−extern u64 __iomem *riscv_time_cmp;
16−
17−#ifdef CONFIG_64BIT
18−#define mmio_get_cycles() readq_relaxed(riscv_time_val)
19−#else
20−#define mmio_get_cycles() readl_relaxed(riscv_time_val)
21−#define mmio_get_cycles_hi() readl_relaxed(((u32 *)riscv_time_val) + 1)
22−#endif
23−
2413 static inline cycles_t get_cycles(void)
2514 {
26− if (IS_ENABLED(CONFIG_RISCV_SBI))
27− return csr_read(CSR_TIME);
28− return mmio_get_cycles();
15+ return csr_read(CSR_TIME);
2916 }
3017 #define get_cycles get_cycles
3118
19+static inline u32 get_cycles_hi(void)
20+{
21+ return csr_read(CSR_TIMEH);
22+}
23+#define get_cycles_hi get_cycles_hi
24+
3225 #ifdef CONFIG_64BIT
3326 static inline u64 get_cycles64(void)
3427 {
3528 return get_cycles();
3629 }
3730 #else /* CONFIG_64BIT */
38−static inline u32 get_cycles_hi(void)
39−{
40− if (IS_ENABLED(CONFIG_RISCV_SBI))
41− return csr_read(CSR_TIMEH);
42− return mmio_get_cycles_hi();
43−}
44−
4531 static inline u64 get_cycles64(void)
4632 {
4733 u32 hi, lo;
arch/riscv/kernel/Makefile+1−1
@@ -31,7 +31,7 @@ obj-y += cacheinfo.o · 30 unmodified lines
3131 obj-y += patch.o
3232 obj-$(CONFIG_MMU) += vdso.o vdso/
3333
34−obj-$(CONFIG_RISCV_M_MODE) += clint.o traps_misaligned.o
34+obj-$(CONFIG_RISCV_M_MODE) += traps_misaligned.o
3535 obj-$(CONFIG_FPU) += fpu.o
3636 obj-$(CONFIG_SMP) += smpboot.o
3737 obj-$(CONFIG_SMP) += smp.o
arch/riscv/kernel/clint.c+0−44
@@ -1,44 +0,0 @@
1−// SPDX-License-Identifier: GPL-2.0
2−/*
3− * Copyright (c) 2019 Christoph Hellwig.
4− */
5−
6−#include <linux/io.h>
7−#include <linux/of_address.h>
8−#include <linux/types.h>
9−#include <asm/clint.h>
10−#include <asm/csr.h>
11−#include <asm/timex.h>
12−#include <asm/smp.h>
13−
14−/*
15− * This is the layout used by the SiFive clint, which is also shared by the qemu
16− * virt platform, and the Kendryte KD210 at least.
17− */
18−#define CLINT_IPI_OFF 0
19−#define CLINT_TIME_CMP_OFF 0x4000
20−#define CLINT_TIME_VAL_OFF 0xbff8
21−
22−u32 __iomem *clint_ipi_base;
23−
24−void clint_init_boot_cpu(void)
25−{
26− struct device_node *np;
27− void __iomem *base;
28−
29− np = of_find_compatible_node(NULL, NULL, "riscv,clint0");
30− if (!np) {
31− panic("clint not found");
32− return;
33− }
34−
35− base = of_iomap(np, 0);
36− if (!base)
37− panic("could not map CLINT");
38−
39− clint_ipi_base = base + CLINT_IPI_OFF;
40− riscv_time_cmp = base + CLINT_TIME_CMP_OFF;
41− riscv_time_val = base + CLINT_TIME_VAL_OFF;
42−
43− clint_clear_ipi(boot_cpu_hartid);
44−}
arch/riscv/kernel/sbi.c+14−0
@@ -547,6 +547,18 @@ static inline long sbi_get_firmware_version(void) · 546 unmodified lines
547547 return __sbi_base_ecall(SBI_EXT_BASE_GET_IMP_VERSION);
548548 }
549549
550+static void sbi_send_cpumask_ipi(const struct cpumask *target)
551+{
552+ struct cpumask hartid_mask;
553+
554+ riscv_cpuid_to_hartid_mask(target, &hartid_mask);
555+
556+ sbi_send_ipi(cpumask_bits(&hartid_mask));
557+}
558+
559+static struct riscv_ipi_ops sbi_ipi_ops = {
560+ .ipi_inject = sbi_send_cpumask_ipi
561+};
550562
551563 int __init sbi_init(void)
552564 {
@@ -587,5 +599,7 @@ int __init sbi_init(void) · 34 unmodified lines
587599 __sbi_rfence = __sbi_rfence_v01;
588600 }
589601
602+ riscv_set_ipi_ops(&sbi_ipi_ops);
603+
590604 return 0;
591605 }
arch/riscv/kernel/setup.c+0−2
@@ -18,7 +18,6 @@ · 17 unmodified lines
1818 #include <linux/swiotlb.h>
1919 #include <linux/smp.h>
2020
21−#include <asm/clint.h>
2221 #include <asm/cpu_ops.h>
2322 #include <asm/setup.h>
2423 #include <asm/sections.h>
@@ -79,7 +78,6 @@ void __init setup_arch(char **cmdline_p) · 54 unmodified lines
7978 #else
8079 unflatten_device_tree();
8180 #endif
82− clint_init_boot_cpu();
8381
8482 #ifdef CONFIG_SWIOTLB
8583 swiotlb_init(1);
arch/riscv/kernel/signal.c+1−1
@@ -250,7 +250,7 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) · 249 unmodified lines
250250 regs->a0 = -EINTR;
251251 break;
252252 }
253− /* fallthrough */
253+ fallthrough;
254254 case -ERESTARTNOINTR:
255255 regs->a0 = regs->orig_a0;
256256 regs->epc -= 0x4;
arch/riscv/kernel/smp.c+24−20
@@ -18,7 +18,6 @@ · 17 unmodified lines
1818 #include <linux/delay.h>
1919 #include <linux/irq_work.h>
2020
21−#include <asm/clint.h>
2221 #include <asm/sbi.h>
2322 #include <asm/tlbflush.h>
2423 #include <asm/cacheflush.h>
@@ -86,9 +85,25 @@ static void ipi_stop(void) · 61 unmodified lines
8685 wait_for_interrupt();
8786 }
8887
88+static struct riscv_ipi_ops *ipi_ops;
89+
90+void riscv_set_ipi_ops(struct riscv_ipi_ops *ops)
91+{
92+ ipi_ops = ops;
93+}
94+EXPORT_SYMBOL_GPL(riscv_set_ipi_ops);
95+
96+void riscv_clear_ipi(void)
97+{
98+ if (ipi_ops && ipi_ops->ipi_clear)
99+ ipi_ops->ipi_clear();
100+
101+ csr_clear(CSR_IP, IE_SIE);
102+}
103+EXPORT_SYMBOL_GPL(riscv_clear_ipi);
104+
89105 static void send_ipi_mask(const struct cpumask *mask, enum ipi_message_type op)
90106 {
91− struct cpumask hartid_mask;
92107 int cpu;
93108
94109 smp_mb__before_atomic();
@@ -96,33 +111,22 @@ static void send_ipi_mask(const struct cpumask *mask, enum ipi_message_type op) · 1 unmodified line
96111 set_bit(op, &ipi_data[cpu].bits);
97112 smp_mb__after_atomic();
98113
99− riscv_cpuid_to_hartid_mask(mask, &hartid_mask);
100− if (IS_ENABLED(CONFIG_RISCV_SBI))
101− sbi_send_ipi(cpumask_bits(&hartid_mask));
114+ if (ipi_ops && ipi_ops->ipi_inject)
115+ ipi_ops->ipi_inject(mask);
102116 else
103− clint_send_ipi_mask(mask);
117+ pr_warn("SMP: IPI inject method not available\n");
104118 }
105119
106120 static void send_ipi_single(int cpu, enum ipi_message_type op)
107121 {
108− int hartid = cpuid_to_hartid_map(cpu);
109−
110122 smp_mb__before_atomic();
111123 set_bit(op, &ipi_data[cpu].bits);
112124 smp_mb__after_atomic();
113125
114− if (IS_ENABLED(CONFIG_RISCV_SBI))
115− sbi_send_ipi(cpumask_bits(cpumask_of(hartid)));
116− else
117− clint_send_ipi_single(hartid);
118−}
119−
120−static inline void clear_ipi(void)
121−{
122− if (IS_ENABLED(CONFIG_RISCV_SBI))
123− csr_clear(CSR_IP, IE_SIE);
126+ if (ipi_ops && ipi_ops->ipi_inject)
127+ ipi_ops->ipi_inject(cpumask_of(cpu));
124128 else
125− clint_clear_ipi(cpuid_to_hartid_map(smp_processor_id()));
129+ pr_warn("SMP: IPI inject method not available\n");
126130 }
127131
128132 #ifdef CONFIG_IRQ_WORK
@@ -140,7 +144,7 @@ void handle_IPI(struct pt_regs *regs) · 11 unmodified lines
140144
141145 irq_enter();
142146
143− clear_ipi();
147+ riscv_clear_ipi();
144148
145149 while (true) {
146150 unsigned long ops;
arch/riscv/kernel/smpboot.c+1−3
@@ -24,7 +24,6 @@ · 23 unmodified lines
2424 #include <linux/of.h>
2525 #include <linux/sched/task_stack.h>
2626 #include <linux/sched/mm.h>
27−#include <asm/clint.h>
2827 #include <asm/cpu_ops.h>
2928 #include <asm/irq.h>
3029 #include <asm/mmu_context.h>
@@ -147,8 +146,7 @@ asmlinkage __visible void smp_callin(void) · 116 unmodified lines
147146 struct mm_struct *mm = &init_mm;
148147 unsigned int curr_cpuid = smp_processor_id();
149148
150− if (!IS_ENABLED(CONFIG_RISCV_SBI))
151− clint_clear_ipi(cpuid_to_hartid_map(smp_processor_id()));
149+ riscv_clear_ipi();
152150
153151 /* All kernel threads share the same mm context. */
154152 mmgrab(mm);
arch/riscv/net/bpf_jit_comp32.c+2−2
@@ -1020,7 +1020,7 @@ int bpf_jit_emit_insn(const struct bpf_insn *insn, struct rv_jit_context *ctx, · 1019 unmodified lines
10201020 emit_zext64(dst, ctx);
10211021 break;
10221022 }
1023− /* Fallthrough. */
1023+ fallthrough;
10241024
10251025 case BPF_ALU | BPF_ADD | BPF_X:
10261026 case BPF_ALU | BPF_SUB | BPF_X:
@@ -1079,7 +1079,7 @@ int bpf_jit_emit_insn(const struct bpf_insn *insn, struct rv_jit_context *ctx, · 52 unmodified lines
10791079 case 16:
10801080 emit(rv_slli(lo(rd), lo(rd), 16), ctx);
10811081 emit(rv_srli(lo(rd), lo(rd), 16), ctx);
1082− /* Fallthrough. */
1082+ fallthrough;
10831083 case 32:
10841084 if (!ctx->prog->aux->verifier_zext)
10851085 emit(rv_addi(hi(rd), RV_REG_ZERO, 0), ctx);
arch/s390/Kconfig+1−1
@@ -30,7 +30,7 @@ config GENERIC_BUG_RELATIVE_POINTERS · 29 unmodified lines
3030 def_bool y
3131
3232 config GENERIC_LOCKBREAK
33− def_bool y if PREEMPTTION
33+ def_bool y if PREEMPTION
3434
3535 config PGSTE
3636 def_bool y if KVM
arch/s390/configs/debug_defconfig+4−0
@@ -626,6 +626,7 @@ CONFIG_NTFS_RW=y · 625 unmodified lines
626626 CONFIG_PROC_KCORE=y
627627 CONFIG_TMPFS=y
628628 CONFIG_TMPFS_POSIX_ACL=y
629+CONFIG_TMPFS_INODE64=y
629630 CONFIG_HUGETLBFS=y
630631 CONFIG_CONFIGFS_FS=m
631632 CONFIG_ECRYPT_FS=m
@@ -807,6 +808,7 @@ CONFIG_DEBUG_NOTIFIERS=y · 175 unmodified lines
807808 CONFIG_BUG_ON_DATA_CORRUPTION=y
808809 CONFIG_DEBUG_CREDENTIALS=y
809810 CONFIG_RCU_TORTURE_TEST=m
811+CONFIG_RCU_REF_SCALE_TEST=m
810812 CONFIG_RCU_CPU_STALL_TIMEOUT=300
811813 # CONFIG_RCU_TRACE is not set
812814 CONFIG_LATENCYTOP=y
@@ -818,6 +820,7 @@ CONFIG_PREEMPT_TRACER=y · 5 unmodified lines
818820 CONFIG_SCHED_TRACER=y
819821 CONFIG_FTRACE_SYSCALLS=y
820822 CONFIG_BLK_DEV_IO_TRACE=y
823+CONFIG_BPF_KPROBE_OVERRIDE=y
821824 CONFIG_HIST_TRIGGERS=y
822825 CONFIG_S390_PTDUMP=y
823826 CONFIG_NOTIFIER_ERROR_INJECTION=m
@@ -829,6 +832,7 @@ CONFIG_FAIL_MAKE_REQUEST=y · 5 unmodified lines
829832 CONFIG_FAIL_IO_TIMEOUT=y
830833 CONFIG_FAIL_FUTEX=y
831834 CONFIG_FAULT_INJECTION_DEBUG_FS=y
835+CONFIG_FAIL_FUNCTION=y
832836 CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
833837 CONFIG_LKDTM=m
834838 CONFIG_TEST_LIST_SORT=y
arch/s390/configs/defconfig+3−0
@@ -617,6 +617,7 @@ CONFIG_NTFS_RW=y · 616 unmodified lines
617617 CONFIG_PROC_KCORE=y
618618 CONFIG_TMPFS=y
619619 CONFIG_TMPFS_POSIX_ACL=y
620+CONFIG_TMPFS_INODE64=y
620621 CONFIG_HUGETLBFS=y
621622 CONFIG_CONFIGFS_FS=m
622623 CONFIG_ECRYPT_FS=m
@@ -763,6 +764,7 @@ CONFIG_PANIC_ON_OOPS=y · 140 unmodified lines
763764 CONFIG_TEST_LOCKUP=m
764765 CONFIG_BUG_ON_DATA_CORRUPTION=y
765766 CONFIG_RCU_TORTURE_TEST=m
767+CONFIG_RCU_REF_SCALE_TEST=m
766768 CONFIG_RCU_CPU_STALL_TIMEOUT=60
767769 CONFIG_LATENCYTOP=y
768770 CONFIG_BOOTTIME_TRACING=y
@@ -771,6 +773,7 @@ CONFIG_STACK_TRACER=y · 2 unmodified lines
771773 CONFIG_SCHED_TRACER=y
772774 CONFIG_FTRACE_SYSCALLS=y
773775 CONFIG_BLK_DEV_IO_TRACE=y
776+CONFIG_BPF_KPROBE_OVERRIDE=y
774777 CONFIG_HIST_TRIGGERS=y
775778 CONFIG_S390_PTDUMP=y
776779 CONFIG_LKDTM=m
arch/s390/configs/zfcpdump_defconfig+1−0
@@ -74,5 +74,6 @@ CONFIG_DEBUG_KERNEL=y · 73 unmodified lines
7474 CONFIG_PANIC_ON_OOPS=y
7575 # CONFIG_SCHED_DEBUG is not set
7676 CONFIG_RCU_CPU_STALL_TIMEOUT=60
77+# CONFIG_RCU_TRACE is not set
7778 # CONFIG_FTRACE is not set
7879 # CONFIG_RUNTIME_TESTING_MENU is not set
arch/s390/include/asm/percpu.h+14−14
@@ -29,7 +29,7 @@ · 28 unmodified lines
2929 typedef typeof(pcp) pcp_op_T__; \
3030 pcp_op_T__ old__, new__, prev__; \
3131 pcp_op_T__ *ptr__; \
32− preempt_disable(); \
32+ preempt_disable_notrace(); \
3333 ptr__ = raw_cpu_ptr(&(pcp)); \
3434 prev__ = *ptr__; \
3535 do { \
@@ -37,7 +37,7 @@ · 1 unmodified line
3737 new__ = old__ op (val); \
3838 prev__ = cmpxchg(ptr__, old__, new__); \
3939 } while (prev__ != old__); \
40− preempt_enable(); \
40+ preempt_enable_notrace(); \
4141 new__; \
4242 })
4343
@@ -68,7 +68,7 @@ · 24 unmodified lines
6868 typedef typeof(pcp) pcp_op_T__; \
6969 pcp_op_T__ val__ = (val); \
7070 pcp_op_T__ old__, *ptr__; \
71− preempt_disable(); \
71+ preempt_disable_notrace(); \
7272 ptr__ = raw_cpu_ptr(&(pcp)); \
7373 if (__builtin_constant_p(val__) && \
7474 ((szcast)val__ > -129) && ((szcast)val__ < 128)) { \
@@ -84,7 +84,7 @@ · 9 unmodified lines
8484 : [val__] "d" (val__) \
8585 : "cc"); \
8686 } \
87− preempt_enable(); \
87+ preempt_enable_notrace(); \
8888 }
8989
9090 #define this_cpu_add_4(pcp, val) arch_this_cpu_add(pcp, val, "laa", "asi", int)
@@ -95,14 +95,14 @@ · 4 unmodified lines
9595 typedef typeof(pcp) pcp_op_T__; \
9696 pcp_op_T__ val__ = (val); \
9797 pcp_op_T__ old__, *ptr__; \
98− preempt_disable(); \
98+ preempt_disable_notrace(); \
9999 ptr__ = raw_cpu_ptr(&(pcp)); \
100100 asm volatile( \
101101 op " %[old__],%[val__],%[ptr__]\n" \
102102 : [old__] "=d" (old__), [ptr__] "+Q" (*ptr__) \
103103 : [val__] "d" (val__) \
104104 : "cc"); \
105− preempt_enable(); \
105+ preempt_enable_notrace(); \
106106 old__ + val__; \
107107 })
108108
@@ -114,14 +114,14 @@ · 5 unmodified lines
114114 typedef typeof(pcp) pcp_op_T__; \
115115 pcp_op_T__ val__ = (val); \
116116 pcp_op_T__ old__, *ptr__; \
117− preempt_disable(); \
117+ preempt_disable_notrace(); \
118118 ptr__ = raw_cpu_ptr(&(pcp)); \
119119 asm volatile( \
120120 op " %[old__],%[val__],%[ptr__]\n" \
121121 : [old__] "=d" (old__), [ptr__] "+Q" (*ptr__) \
122122 : [val__] "d" (val__) \
123123 : "cc"); \
124− preempt_enable(); \
124+ preempt_enable_notrace(); \
125125 }
126126
127127 #define this_cpu_and_4(pcp, val) arch_this_cpu_to_op(pcp, val, "lan")
@@ -136,10 +136,10 @@ · 8 unmodified lines
136136 typedef typeof(pcp) pcp_op_T__; \
137137 pcp_op_T__ ret__; \
138138 pcp_op_T__ *ptr__; \
139− preempt_disable(); \
139+ preempt_disable_notrace(); \
140140 ptr__ = raw_cpu_ptr(&(pcp)); \
141141 ret__ = cmpxchg(ptr__, oval, nval); \
142− preempt_enable(); \
142+ preempt_enable_notrace(); \
143143 ret__; \
144144 })
145145
@@ -152,10 +152,10 @@ · 6 unmodified lines
152152 ({ \
153153 typeof(pcp) *ptr__; \
154154 typeof(pcp) ret__; \
155− preempt_disable(); \
155+ preempt_disable_notrace(); \
156156 ptr__ = raw_cpu_ptr(&(pcp)); \
157157 ret__ = xchg(ptr__, nval); \
158− preempt_enable(); \
158+ preempt_enable_notrace(); \
159159 ret__; \
160160 })
161161
@@ -171,11 +171,11 @@ · 9 unmodified lines
171171 typeof(pcp1) *p1__; \
172172 typeof(pcp2) *p2__; \
173173 int ret__; \
174− preempt_disable(); \
174+ preempt_disable_notrace(); \
175175 p1__ = raw_cpu_ptr(&(pcp1)); \
176176 p2__ = raw_cpu_ptr(&(pcp2)); \
177177 ret__ = __cmpxchg_double(p1__, p2__, o1__, o2__, n1__, n2__); \
178− preempt_enable(); \
178+ preempt_enable_notrace(); \
179179 ret__; \
180180 })
181181
arch/s390/kernel/idle.c+1−2
@@ -33,14 +33,13 @@ void enabled_wait(void) · 32 unmodified lines
3333 PSW_MASK_IO | PSW_MASK_EXT | PSW_MASK_MCHECK;
3434 clear_cpu_flag(CIF_NOHZ_DELAY);
3535
36− trace_cpu_idle_rcuidle(1, smp_processor_id());
3736 local_irq_save(flags);
3837 /* Call the assembler magic in entry.S */
3938 psw_idle(idle, psw_mask);
4039 local_irq_restore(flags);
41− trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id());
4240
4341 /* Account time spent with enabled wait psw loaded as idle time. */
42+ /* XXX seqcount has tracepoints that require RCU */
4443 write_seqcount_begin(&idle->seqcount);
4544 idle_time = idle->clock_idle_exit - idle->clock_idle_enter;
4645 idle->clock_idle_enter = idle->clock_idle_exit = 0ULL;
arch/s390/kernel/ptrace.c+5−2
@@ -1268,7 +1268,6 @@ static bool is_ri_cb_valid(struct runtime_instr_cb *cb) · 1267 unmodified lines
12681268 cb->pc == 1 &&
12691269 cb->qc == 0 &&
12701270 cb->reserved2 == 0 &&
1271− cb->key == PAGE_DEFAULT_KEY &&
12721271 cb->reserved3 == 0 &&
12731272 cb->reserved4 == 0 &&
12741273 cb->reserved5 == 0 &&
@@ -1330,7 +1329,11 @@ static int s390_runtime_instr_set(struct task_struct *target, · 55 unmodified lines
13301329 kfree(data);
13311330 return -EINVAL;
13321331 }
1333−
1332+ /*
1333+ * Override access key in any case, since user space should
1334+ * not be able to set it, nor should it care about it.
1335+ */
1336+ ri_cb.key = PAGE_DEFAULT_KEY >> 4;
13341337 preempt_disable();
13351338 if (!target->thread.ri_cb)
13361339 target->thread.ri_cb = data;
arch/s390/kernel/runtime_instr.c+1−1
@@ -57,7 +57,7 @@ static void init_runtime_instr_cb(struct runtime_instr_cb *cb) · 56 unmodified lines
5757 cb->k = 1;
5858 cb->ps = 1;
5959 cb->pc = 1;
60− cb->key = PAGE_DEFAULT_KEY;
60+ cb->key = PAGE_DEFAULT_KEY >> 4;
6161 cb->v = 1;
6262 }
6363
arch/s390/mm/vmem.c+1−0
@@ -402,6 +402,7 @@ static int modify_p4d_table(pgd_t *pgd, unsigned long addr, unsigned long end, · 401 unmodified lines
402402 pud = vmem_crst_alloc(_REGION3_ENTRY_EMPTY);
403403 if (!pud)
404404 goto out;
405+ p4d_populate(&init_mm, p4d, pud);
405406 }
406407 ret = modify_pud_table(p4d, addr, next, add, direct);
407408 if (ret)
arch/s390/pci/pci.c+15−7
@@ -672,6 +672,19 @@ int zpci_disable_device(struct zpci_dev *zdev) · 671 unmodified lines
672672 }
673673 EXPORT_SYMBOL_GPL(zpci_disable_device);
674674
675+void zpci_remove_device(struct zpci_dev *zdev)
676+{
677+ struct zpci_bus *zbus = zdev->zbus;
678+ struct pci_dev *pdev;
679+
680+ pdev = pci_get_slot(zbus->bus, zdev->devfn);
681+ if (pdev) {
682+ if (pdev->is_virtfn)
683+ return zpci_remove_virtfn(pdev, zdev->vfn);
684+ pci_stop_and_remove_bus_device_locked(pdev);
685+ }
686+}
687+
675688 int zpci_create_device(struct zpci_dev *zdev)
676689 {
677690 int rc;
@@ -716,13 +729,8 @@ void zpci_release_device(struct kref *kref) · 38 unmodified lines
716729 {
717730 struct zpci_dev *zdev = container_of(kref, struct zpci_dev, kref);
718731
719− if (zdev->zbus->bus) {
720− struct pci_dev *pdev;
721−
722− pdev = pci_get_slot(zdev->zbus->bus, zdev->devfn);
723− if (pdev)
724− pci_stop_and_remove_bus_device_locked(pdev);
725− }
732+ if (zdev->zbus->bus)
733+ zpci_remove_device(zdev);
726734
727735 switch (zdev->state) {
728736 case ZPCI_FN_STATE_ONLINE:
arch/s390/pci/pci_bus.c+30−22
@@ -132,13 +132,14 @@ static int zpci_bus_link_virtfn(struct pci_dev *pdev, · 131 unmodified lines
132132 {
133133 int rc;
134134
135− virtfn->physfn = pci_dev_get(pdev);
136135 rc = pci_iov_sysfs_link(pdev, virtfn, vfid);
137− if (rc) {
138− pci_dev_put(pdev);
139− virtfn->physfn = NULL;
136+ if (rc)
140137 return rc;
141− }
138+
139+ virtfn->is_virtfn = 1;
140+ virtfn->multifunction = 0;
141+ virtfn->physfn = pci_dev_get(pdev);
142+
142143 return 0;
143144 }
144145
@@ -151,9 +152,9 @@ static int zpci_bus_setup_virtfn(struct zpci_bus *zbus, · 6 unmodified lines
151152 int vfid = vfn - 1; /* Linux' vfid's start at 0 vfn at 1*/
152153 int rc = 0;
153154
154− virtfn->is_virtfn = 1;
155− virtfn->multifunction = 0;
156− WARN_ON(vfid < 0);
155+ if (!zbus->multifunction)
156+ return 0;
157+
157158 /* If the parent PF for the given VF is also configured in the
158159 * instance, it must be on the same zbus.
159160 * We can then identify the parent PF by checking what
@@ -165,11 +166,17 @@ static int zpci_bus_setup_virtfn(struct zpci_bus *zbus, · 5 unmodified lines
165166 zdev = zbus->function[i];
166167 if (zdev && zdev->is_physfn) {
167168 pdev = pci_get_slot(zbus->bus, zdev->devfn);
169+ if (!pdev)
170+ continue;
168171 cand_devfn = pci_iov_virtfn_devfn(pdev, vfid);
169172 if (cand_devfn == virtfn->devfn) {
170173 rc = zpci_bus_link_virtfn(pdev, virtfn, vfid);
174+ /* balance pci_get_slot() */
175+ pci_dev_put(pdev);
171176 break;
172177 }
178+ /* balance pci_get_slot() */
179+ pci_dev_put(pdev);
173180 }
174181 }
175182 return rc;
@@ -178,12 +185,23 @@ static int zpci_bus_setup_virtfn(struct zpci_bus *zbus, · 2 unmodified lines
178185 static inline int zpci_bus_setup_virtfn(struct zpci_bus *zbus,
179186 struct pci_dev *virtfn, int vfn)
180187 {
181− virtfn->is_virtfn = 1;
182− virtfn->multifunction = 0;
183188 return 0;
184189 }
185190 #endif
186191
192+void pcibios_bus_add_device(struct pci_dev *pdev)
193+{
194+ struct zpci_dev *zdev = to_zpci(pdev);
195+
196+ /*
197+ * With pdev->no_vf_scan the common PCI probing code does not
198+ * perform PF/VF linking.
199+ */
200+ if (zdev->vfn)
201+ zpci_bus_setup_virtfn(zdev->zbus, pdev, zdev->vfn);
202+
203+}
204+
187205 static int zpci_bus_add_device(struct zpci_bus *zbus, struct zpci_dev *zdev)
188206 {
189207 struct pci_bus *bus;
@@ -214,20 +232,10 @@ static int zpci_bus_add_device(struct zpci_bus *zbus, struct zpci_dev *zdev) · 24 unmodified lines
214232 }
215233
216234 pdev = pci_scan_single_device(bus, zdev->devfn);
217− if (pdev) {
218− if (!zdev->is_physfn) {
219− rc = zpci_bus_setup_virtfn(zbus, pdev, zdev->vfn);
220− if (rc)
221− goto failed_with_pdev;
222− }
235+ if (pdev)
223236 pci_bus_add_device(pdev);
224− }
225− return 0;
226237
227−failed_with_pdev:
228− pci_stop_and_remove_bus_device(pdev);
229− pci_dev_put(pdev);
230− return rc;
238+ return 0;
231239 }
232240
233241 static void zpci_bus_add_devices(struct zpci_bus *zbus)
arch/s390/pci/pci_bus.h+13−0
@@ -29,3 +29,16 @@ static inline struct zpci_dev *get_zdev_by_bus(struct pci_bus *bus, · 28 unmodified lines
2929
3030 return (devfn >= ZPCI_FUNCTIONS_PER_BUS) ? NULL : zbus->function[devfn];
3131 }
32+
33+#ifdef CONFIG_PCI_IOV
34+static inline void zpci_remove_virtfn(struct pci_dev *pdev, int vfn)
35+{
36+
37+ pci_lock_rescan_remove();
38+ /* Linux' vfid's start at 0 vfn at 1 */
39+ pci_iov_remove_virtfn(pdev->physfn, vfn - 1);
40+ pci_unlock_rescan_remove();
41+}
42+#else /* CONFIG_PCI_IOV */
43+static inline void zpci_remove_virtfn(struct pci_dev *pdev, int vfn) {}
44+#endif /* CONFIG_PCI_IOV */
arch/s390/pci/pci_event.c+5−2
@@ -92,6 +92,9 @@ static void __zpci_event_availability(struct zpci_ccdf_avail *ccdf) · 91 unmodified lines
9292 ret = clp_add_pci_device(ccdf->fid, ccdf->fh, 1);
9393 break;
9494 }
95+ /* the configuration request may be stale */
96+ if (zdev->state != ZPCI_FN_STATE_STANDBY)
97+ break;
9598 zdev->fh = ccdf->fh;
9699 zdev->state = ZPCI_FN_STATE_CONFIGURED;
97100 ret = zpci_enable_device(zdev);
@@ -118,7 +121,7 @@ static void __zpci_event_availability(struct zpci_ccdf_avail *ccdf) · 20 unmodified lines
118121 if (!zdev)
119122 break;
120123 if (pdev)
121− pci_stop_and_remove_bus_device_locked(pdev);
124+ zpci_remove_device(zdev);
122125
123126 ret = zpci_disable_device(zdev);
124127 if (ret)
@@ -137,7 +140,7 @@ static void __zpci_event_availability(struct zpci_ccdf_avail *ccdf) · 12 unmodified lines
137140 /* Give the driver a hint that the function is
138141 * already unusable. */
139142 pdev->error_state = pci_channel_io_perm_failure;
140− pci_stop_and_remove_bus_device_locked(pdev);
143+ zpci_remove_device(zdev);
141144 }
142145
143146 zdev->state = ZPCI_FN_STATE_STANDBY;
arch/sh/drivers/platform_early.c+1−1
@@ -246,7 +246,7 @@ static int __init sh_early_platform_driver_probe_id(char *class_str, · 245 unmodified lines
246246 case EARLY_PLATFORM_ID_ERROR:
247247 pr_warn("%s: unable to parse %s parameter\n",
248248 class_str, epdrv->pdrv->driver.name);
249− /* fall-through */
249+ fallthrough;
250250 case EARLY_PLATFORM_ID_UNSET:
251251 match = NULL;
252252 break;
arch/sh/kernel/disassemble.c+2−2
@@ -486,7 +486,7 @@ static void print_sh_insn(u32 memaddr, u16 insn) · 485 unmodified lines
486486 pr_cont("xd%d", rn & ~1);
487487 break;
488488 }
489− /* else, fall through */
489+ fallthrough;
490490 case D_REG_N:
491491 pr_cont("dr%d", rn);
492492 break;
@@ -495,7 +495,7 @@ static void print_sh_insn(u32 memaddr, u16 insn) · 2 unmodified lines
495495 pr_cont("xd%d", rm & ~1);
496496 break;
497497 }
498− /* else, fall through */
498+ fallthrough;
499499 case D_REG_M:
500500 pr_cont("dr%d", rm);
501501 break;
arch/sh/kernel/kgdb.c+1−1
@@ -266,7 +266,7 @@ int kgdb_arch_handle_exception(int e_vector, int signo, int err_code, · 265 unmodified lines
266266 ptr = &remcomInBuffer[1];
267267 if (kgdb_hex2long(&ptr, &addr))
268268 linux_regs->pc = addr;
269− /* fallthrough */
269+ fallthrough;
270270 case 'D':
271271 case 'k':
272272 atomic_set(&kgdb_cpu_doing_single_step, -1);
arch/sh/kernel/signal_32.c+1−1
@@ -418,7 +418,7 @@ handle_syscall_restart(unsigned long save_r0, struct pt_regs *regs, · 417 unmodified lines
418418 case -ERESTARTSYS:
419419 if (!(sa->sa_flags & SA_RESTART))
420420 goto no_system_call_restart;
421− /* fallthrough */
421+ fallthrough;
422422 case -ERESTARTNOINTR:
423423 regs->regs[0] = save_r0;
424424 regs->pc -= instruction_size(__raw_readw(regs->pc - 4));
arch/sparc/kernel/auxio_64.c+0−1
@@ -87,7 +87,6 @@ void auxio_set_lte(int on) · 86 unmodified lines
8787 __auxio_sbus_set_lte(on);
8888 break;
8989 case AUXIO_TYPE_EBUS:
90− /* FALL-THROUGH */
9190 default:
9291 break;
9392 }
arch/sparc/kernel/central.c+1−1
@@ -55,7 +55,7 @@ static int clock_board_calc_nslots(struct clock_board *p) · 54 unmodified lines
5555 else
5656 return 5;
5757 }
58− /* Fallthrough */
58+ fallthrough;
5959 default:
6060 return 4;
6161 }
arch/sparc/kernel/kgdb_32.c+1−1
@@ -122,7 +122,7 @@ int kgdb_arch_handle_exception(int e_vector, int signo, int err_code, · 121 unmodified lines
122122 linux_regs->pc = addr;
123123 linux_regs->npc = addr + 4;
124124 }
125− /* fall through */
125+ fallthrough;
126126
127127 case 'D':
128128 case 'k':
arch/sparc/kernel/kgdb_64.c+1−1
@@ -148,7 +148,7 @@ int kgdb_arch_handle_exception(int e_vector, int signo, int err_code, · 147 unmodified lines
148148 linux_regs->tpc = addr;
149149 linux_regs->tnpc = addr + 4;
150150 }
151− /* fall through */
151+ fallthrough;
152152
153153 case 'D':
154154 case 'k':
arch/sparc/kernel/pcr.c+1−1
@@ -359,7 +359,7 @@ int __init pcr_arch_init(void) · 358 unmodified lines
359359 * counter overflow interrupt so we can't make use of
360360 * their hardware currently.
361361 */
362− /* fallthrough */
362+ fallthrough;
363363 default:
364364 err = -ENODEV;
365365 goto out_unregister;
arch/sparc/kernel/prom_32.c+1−1
@@ -224,7 +224,7 @@ void __init of_console_init(void) · 223 unmodified lines
224224
225225 case PROMDEV_TTYB:
226226 skip = 1;
227− /* FALLTHRU */
227+ fallthrough;
228228
229229 case PROMDEV_TTYA:
230230 type = "serial";
arch/sparc/kernel/signal32.c+2−2
@@ -646,7 +646,7 @@ static inline void syscall_restart32(unsigned long orig_i0, struct pt_regs *regs · 645 unmodified lines
646646 case ERESTARTSYS:
647647 if (!(sa->sa_flags & SA_RESTART))
648648 goto no_system_call_restart;
649− /* fallthrough */
649+ fallthrough;
650650 case ERESTARTNOINTR:
651651 regs->u_regs[UREG_I0] = orig_i0;
652652 regs->tpc -= 4;
@@ -686,7 +686,7 @@ void do_signal32(struct pt_regs * regs) · 33 unmodified lines
686686 regs->tpc -= 4;
687687 regs->tnpc -= 4;
688688 pt_regs_clear_syscall(regs);
689− /* fall through */
689+ fallthrough;
690690 case ERESTART_RESTARTBLOCK:
691691 regs->u_regs[UREG_G1] = __NR_restart_syscall;
692692 regs->tpc -= 4;
arch/sparc/kernel/signal_32.c+2−2
@@ -440,7 +440,7 @@ static inline void syscall_restart(unsigned long orig_i0, struct pt_regs *regs, · 439 unmodified lines
440440 case ERESTARTSYS:
441441 if (!(sa->sa_flags & SA_RESTART))
442442 goto no_system_call_restart;
443− /* fallthrough */
443+ fallthrough;
444444 case ERESTARTNOINTR:
445445 regs->u_regs[UREG_I0] = orig_i0;
446446 regs->pc -= 4;
@@ -506,7 +506,7 @@ static void do_signal(struct pt_regs *regs, unsigned long orig_i0) · 59 unmodified lines
506506 regs->pc -= 4;
507507 regs->npc -= 4;
508508 pt_regs_clear_syscall(regs);
509− /* fall through */
509+ fallthrough;
510510 case ERESTART_RESTARTBLOCK:
511511 regs->u_regs[UREG_G1] = __NR_restart_syscall;
512512 regs->pc -= 4;
arch/sparc/kernel/signal_64.c+2−2
@@ -461,7 +461,7 @@ static inline void syscall_restart(unsigned long orig_i0, struct pt_regs *regs, · 460 unmodified lines
461461 case ERESTARTSYS:
462462 if (!(sa->sa_flags & SA_RESTART))
463463 goto no_system_call_restart;
464− /* fallthrough */
464+ fallthrough;
465465 case ERESTARTNOINTR:
466466 regs->u_regs[UREG_I0] = orig_i0;
467467 regs->tpc -= 4;
@@ -532,7 +532,7 @@ static void do_signal(struct pt_regs *regs, unsigned long orig_i0) · 64 unmodified lines
532532 regs->tpc -= 4;
533533 regs->tnpc -= 4;
534534 pt_regs_clear_syscall(regs);
535− /* fall through */
535+ fallthrough;
536536 case ERESTART_RESTARTBLOCK:
537537 regs->u_regs[UREG_G1] = __NR_restart_syscall;
538538 regs->tpc -= 4;
arch/sparc/math-emu/math_32.c+4−4
@@ -359,7 +359,7 @@ static int do_one_mathemu(u32 insn, unsigned long *pfsr, unsigned long *fregs) · 358 unmodified lines
359359 *pfsr |= (6 << 14);
360360 return 0; /* simulate invalid_fp_register exception */
361361 }
362− /* fall through */
362+ fallthrough;
363363 case 2:
364364 if (freg & 1) { /* doublewords must have bit 5 zeroed */
365365 *pfsr |= (6 << 14);
@@ -380,7 +380,7 @@ static int do_one_mathemu(u32 insn, unsigned long *pfsr, unsigned long *fregs) · 14 unmodified lines
380380 *pfsr |= (6 << 14);
381381 return 0; /* simulate invalid_fp_register exception */
382382 }
383− /* fall through */
383+ fallthrough;
384384 case 2:
385385 if (freg & 1) { /* doublewords must have bit 5 zeroed */
386386 *pfsr |= (6 << 14);
@@ -408,13 +408,13 @@ static int do_one_mathemu(u32 insn, unsigned long *pfsr, unsigned long *fregs) · 21 unmodified lines
408408 *pfsr |= (6 << 14);
409409 return 0; /* simulate invalid_fp_register exception */
410410 }
411− /* fall through */
411+ fallthrough;
412412 case 2:
413413 if (freg & 1) { /* doublewords must have bit 5 zeroed */
414414 *pfsr |= (6 << 14);
415415 return 0;
416416 }
417− /* fall through */
417+ fallthrough;
418418 case 1:
419419 rd = (void *)&fregs[freg];
420420 break;
arch/sparc/net/bpf_jit_comp_32.c+1−1
@@ -491,7 +491,7 @@ void bpf_jit_compile(struct bpf_prog *fp) · 490 unmodified lines
491491 } else {
492492 emit_loadimm(K, r_A);
493493 }
494− /* Fallthrough */
494+ fallthrough;
495495 case BPF_RET | BPF_A:
496496 if (seen_or_pass0) {
497497 if (i != flen - 1) {
arch/um/kernel/signal.c+1−1
@@ -70,7 +70,7 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) · 69 unmodified lines
7070 PT_REGS_SYSCALL_RET(regs) = -EINTR;
7171 break;
7272 }
73− /* fallthrough */
73+ fallthrough;
7474 case -ERESTARTNOINTR:
7575 PT_REGS_RESTART_SYSCALL(regs);
7676 PT_REGS_ORIG_SYSCALL(regs) = PT_REGS_SYSCALL_NR(regs);
arch/x86/boot/cmdline.c+2−2
@@ -54,7 +54,7 @@ int __cmdline_find_option(unsigned long cmdline_ptr, const char *option, char *b · 53 unmodified lines
5454 /* else */
5555 state = st_wordcmp;
5656 opptr = option;
57− /* fall through */
57+ fallthrough;
5858
5959 case st_wordcmp:
6060 if (c == '=' && !*opptr) {
@@ -129,7 +129,7 @@ int __cmdline_find_option_bool(unsigned long cmdline_ptr, const char *option) · 68 unmodified lines
129129 state = st_wordcmp;
130130 opptr = option;
131131 wstart = pos;
132− /* fall through */
132+ fallthrough;
133133
134134 case st_wordcmp:
135135 if (!*opptr)
arch/x86/boot/compressed/kaslr.c+1−1
@@ -178,7 +178,7 @@ parse_memmap(char *p, unsigned long long *start, unsigned long long *size, · 177 unmodified lines
178178 }
179179 *size = 0;
180180 }
181− /* Fall through */
181+ fallthrough;
182182 default:
183183 /*
184184 * If w/o offset, only size specified, memmap=nn[KMG] has the
arch/x86/boot/compressed/misc.c+2−5
@@ -30,12 +30,9 @@ · 29 unmodified lines
3030 #define STATIC static
3131
3232 /*
33− * Use normal definitions of mem*() from string.c. There are already
34− * included header files which expect a definition of memset() and by
35− * the time we define memset macro, it is too late.
33+ * Provide definitions of memzero and memmove as some of the decompressors will
34+ * try to define their own functions if these are not defined as macros.
3635 */
37−#undef memcpy
38−#undef memset
3936 #define memzero(s, n) memset((s), 0, (n))
4037 #define memmove memmove
4138
arch/x86/boot/string.h+1−4
@@ -11,10 +11,7 @@ void *memcpy(void *dst, const void *src, size_t len); · 10 unmodified lines
1111 void *memset(void *dst, int c, size_t len);
1212 int memcmp(const void *s1, const void *s2, size_t len);
1313
14−/*
15− * Access builtin version by default. If one needs to use optimized version,
16− * do "undef memcpy" in .c file and link against right string.c
17− */
14+/* Access builtin version by default. */
1815 #define memcpy(d,s,l) __builtin_memcpy(d,s,l)
1916 #define memset(d,c,l) __builtin_memset(d,c,l)
2017 #define memcmp __builtin_memcmp
arch/x86/entry/calling.h+6−4
@@ -374,12 +374,14 @@ For 32-bit we have the following conventions - kernel is built with · 373 unmodified lines
374374 * Fetch the per-CPU GSBASE value for this processor and put it in @reg.
375375 * We normally use %gs for accessing per-CPU data, but we are setting up
376376 * %gs here and obviously can not use %gs itself to access per-CPU data.
377+ *
378+ * Do not use RDPID, because KVM loads guest's TSC_AUX on vm-entry and
379+ * may not restore the host's value until the CPU returns to userspace.
380+ * Thus the kernel would consume a guest's TSC_AUX if an NMI arrives
381+ * while running KVM's run loop.
377382 */
378383 .macro GET_PERCPU_BASE reg:req
379− ALTERNATIVE \
380− "LOAD_CPU_AND_NODE_SEG_LIMIT \reg", \
381− "RDPID \reg", \
382− X86_FEATURE_RDPID
384+ LOAD_CPU_AND_NODE_SEG_LIMIT \reg
383385 andq $VDSO_CPUNODE_MASK, \reg
384386 movq __per_cpu_offset(, \reg, 8), \reg
385387 .endm
arch/x86/entry/common.c+20−9
@@ -60,16 +60,10 @@ __visible noinstr void do_syscall_64(unsigned long nr, struct pt_regs *regs) · 59 unmodified lines
6060 #if defined(CONFIG_X86_32) || defined(CONFIG_IA32_EMULATION)
6161 static __always_inline unsigned int syscall_32_enter(struct pt_regs *regs)
6262 {
63− unsigned int nr = (unsigned int)regs->orig_ax;
64−
6563 if (IS_ENABLED(CONFIG_IA32_EMULATION))
6664 current_thread_info()->status |= TS_COMPAT;
67− /*
68− * Subtlety here: if ptrace pokes something larger than 2^32-1 into
69− * orig_ax, the unsigned int return value truncates it. This may
70− * or may not be necessary, but it matches the old asm behavior.
71− */
72− return (unsigned int)syscall_enter_from_user_mode(regs, nr);
65+
66+ return (unsigned int)regs->orig_ax;
7367 }
7468
7569 /*
@@ -91,15 +85,29 @@ __visible noinstr void do_int80_syscall_32(struct pt_regs *regs) · 15 unmodified lines
9185 {
9286 unsigned int nr = syscall_32_enter(regs);
9387
88+ /*
89+ * Subtlety here: if ptrace pokes something larger than 2^32-1 into
90+ * orig_ax, the unsigned int return value truncates it. This may
91+ * or may not be necessary, but it matches the old asm behavior.
92+ */
93+ nr = (unsigned int)syscall_enter_from_user_mode(regs, nr);
94+
9495 do_syscall_32_irqs_on(regs, nr);
9596 syscall_exit_to_user_mode(regs);
9697 }
9798
9899 static noinstr bool __do_fast_syscall_32(struct pt_regs *regs)
99100 {
100− unsigned int nr = syscall_32_enter(regs);
101+ unsigned int nr = syscall_32_enter(regs);
101102 int res;
102103
104+ /*
105+ * This cannot use syscall_enter_from_user_mode() as it has to
106+ * fetch EBP before invoking any of the syscall entry work
107+ * functions.
108+ */
109+ syscall_enter_from_user_mode_prepare(regs);
110+
103111 instrumentation_begin();
104112 /* Fetch EBP from where the vDSO stashed it. */
105113 if (IS_ENABLED(CONFIG_X86_64)) {
@@ -122,6 +130,9 @@ static noinstr bool __do_fast_syscall_32(struct pt_regs *regs) · 16 unmodified lines
122130 return false;
123131 }
124132
133+ /* The case truncates any ptrace induced syscall nr > 2^32 -1 */
134+ nr = (unsigned int)syscall_enter_from_user_mode_work(regs, nr);
135+
125136 /* Now this is just like a normal syscall. */
126137 do_syscall_32_irqs_on(regs, nr);
127138 syscall_exit_to_user_mode(regs);
arch/x86/entry/thunk_32.S+0−5
@@ -29,11 +29,6 @@ SYM_CODE_START_NOALIGN(\name) · 28 unmodified lines
2929 SYM_CODE_END(\name)
3030 .endm
3131
32−#ifdef CONFIG_TRACE_IRQFLAGS
33− THUNK trace_hardirqs_on_thunk,trace_hardirqs_on_caller,1
34− THUNK trace_hardirqs_off_thunk,trace_hardirqs_off_caller,1
35−#endif
36−
3732 #ifdef CONFIG_PREEMPTION
3833 THUNK preempt_schedule_thunk, preempt_schedule
3934 THUNK preempt_schedule_notrace_thunk, preempt_schedule_notrace
arch/x86/events/intel/core.c+3−3
@@ -4682,7 +4682,7 @@ __init int intel_pmu_init(void) · 4681 unmodified lines
46824682
46834683 case INTEL_FAM6_CORE2_MEROM:
46844684 x86_add_quirk(intel_clovertown_quirk);
4685− /* fall through */
4685+ fallthrough;
46864686
46874687 case INTEL_FAM6_CORE2_MEROM_L:
46884688 case INTEL_FAM6_CORE2_PENRYN:
@@ -5062,7 +5062,7 @@ __init int intel_pmu_init(void) · 373 unmodified lines
50625062
50635063 case INTEL_FAM6_SKYLAKE_X:
50645064 pmem = true;
5065− /* fall through */
5065+ fallthrough;
50665066 case INTEL_FAM6_SKYLAKE_L:
50675067 case INTEL_FAM6_SKYLAKE:
50685068 case INTEL_FAM6_KABYLAKE_L:
@@ -5114,7 +5114,7 @@ __init int intel_pmu_init(void) · 45 unmodified lines
51145114 case INTEL_FAM6_ICELAKE_X:
51155115 case INTEL_FAM6_ICELAKE_D:
51165116 pmem = true;
5117− /* fall through */
5117+ fallthrough;
51185118 case INTEL_FAM6_ICELAKE_L:
51195119 case INTEL_FAM6_ICELAKE:
51205120 case INTEL_FAM6_TIGERLAKE_L:
arch/x86/events/intel/lbr.c+1−1
@@ -1268,7 +1268,7 @@ static int branch_type(unsigned long from, unsigned long to, int abort) · 1267 unmodified lines
12681268 ret = X86_BR_ZERO_CALL;
12691269 break;
12701270 }
1271− /* fall through */
1271+ fallthrough;
12721272 case 0x9a: /* call far absolute */
12731273 ret = X86_BR_CALL;
12741274 break;
arch/x86/events/intel/uncore_snb.c+49−3
@@ -390,6 +390,18 @@ static struct uncore_event_desc snb_uncore_imc_events[] = { · 389 unmodified lines
390390 INTEL_UNCORE_EVENT_DESC(data_writes.scale, "6.103515625e-5"),
391391 INTEL_UNCORE_EVENT_DESC(data_writes.unit, "MiB"),
392392
393+ INTEL_UNCORE_EVENT_DESC(gt_requests, "event=0x03"),
394+ INTEL_UNCORE_EVENT_DESC(gt_requests.scale, "6.103515625e-5"),
395+ INTEL_UNCORE_EVENT_DESC(gt_requests.unit, "MiB"),
396+
397+ INTEL_UNCORE_EVENT_DESC(ia_requests, "event=0x04"),
398+ INTEL_UNCORE_EVENT_DESC(ia_requests.scale, "6.103515625e-5"),
399+ INTEL_UNCORE_EVENT_DESC(ia_requests.unit, "MiB"),
400+
401+ INTEL_UNCORE_EVENT_DESC(io_requests, "event=0x05"),
402+ INTEL_UNCORE_EVENT_DESC(io_requests.scale, "6.103515625e-5"),
403+ INTEL_UNCORE_EVENT_DESC(io_requests.unit, "MiB"),
404+
393405 { /* end: all zeroes */ },
394406 };
395407
@@ -405,13 +417,35 @@ static struct uncore_event_desc snb_uncore_imc_events[] = { · 9 unmodified lines
405417 #define SNB_UNCORE_PCI_IMC_DATA_WRITES_BASE 0x5054
406418 #define SNB_UNCORE_PCI_IMC_CTR_BASE SNB_UNCORE_PCI_IMC_DATA_READS_BASE
407419
420+/* BW break down- legacy counters */
421+#define SNB_UNCORE_PCI_IMC_GT_REQUESTS 0x3
422+#define SNB_UNCORE_PCI_IMC_GT_REQUESTS_BASE 0x5040
423+#define SNB_UNCORE_PCI_IMC_IA_REQUESTS 0x4
424+#define SNB_UNCORE_PCI_IMC_IA_REQUESTS_BASE 0x5044
425+#define SNB_UNCORE_PCI_IMC_IO_REQUESTS 0x5
426+#define SNB_UNCORE_PCI_IMC_IO_REQUESTS_BASE 0x5048
427+
408428 enum perf_snb_uncore_imc_freerunning_types {
409− SNB_PCI_UNCORE_IMC_DATA = 0,
429+ SNB_PCI_UNCORE_IMC_DATA_READS = 0,
430+ SNB_PCI_UNCORE_IMC_DATA_WRITES,
431+ SNB_PCI_UNCORE_IMC_GT_REQUESTS,
432+ SNB_PCI_UNCORE_IMC_IA_REQUESTS,
433+ SNB_PCI_UNCORE_IMC_IO_REQUESTS,
434+
410435 SNB_PCI_UNCORE_IMC_FREERUNNING_TYPE_MAX,
411436 };
412437
413438 static struct freerunning_counters snb_uncore_imc_freerunning[] = {
414− [SNB_PCI_UNCORE_IMC_DATA] = { SNB_UNCORE_PCI_IMC_DATA_READS_BASE, 0x4, 0x0, 2, 32 },
439+ [SNB_PCI_UNCORE_IMC_DATA_READS] = { SNB_UNCORE_PCI_IMC_DATA_READS_BASE,
440+ 0x0, 0x0, 1, 32 },
441+ [SNB_PCI_UNCORE_IMC_DATA_READS] = { SNB_UNCORE_PCI_IMC_DATA_WRITES_BASE,
442+ 0x0, 0x0, 1, 32 },
443+ [SNB_PCI_UNCORE_IMC_GT_REQUESTS] = { SNB_UNCORE_PCI_IMC_GT_REQUESTS_BASE,
444+ 0x0, 0x0, 1, 32 },
445+ [SNB_PCI_UNCORE_IMC_IA_REQUESTS] = { SNB_UNCORE_PCI_IMC_IA_REQUESTS_BASE,
446+ 0x0, 0x0, 1, 32 },
447+ [SNB_PCI_UNCORE_IMC_IO_REQUESTS] = { SNB_UNCORE_PCI_IMC_IO_REQUESTS_BASE,
448+ 0x0, 0x0, 1, 32 },
415449 };
416450
417451 static struct attribute *snb_uncore_imc_formats_attr[] = {
@@ -525,6 +559,18 @@ static int snb_uncore_imc_event_init(struct perf_event *event) · 107 unmodified lines
525559 base = SNB_UNCORE_PCI_IMC_DATA_WRITES_BASE;
526560 idx = UNCORE_PMC_IDX_FREERUNNING;
527561 break;
562+ case SNB_UNCORE_PCI_IMC_GT_REQUESTS:
563+ base = SNB_UNCORE_PCI_IMC_GT_REQUESTS_BASE;
564+ idx = UNCORE_PMC_IDX_FREERUNNING;
565+ break;
566+ case SNB_UNCORE_PCI_IMC_IA_REQUESTS:
567+ base = SNB_UNCORE_PCI_IMC_IA_REQUESTS_BASE;
568+ idx = UNCORE_PMC_IDX_FREERUNNING;
569+ break;
570+ case SNB_UNCORE_PCI_IMC_IO_REQUESTS:
571+ base = SNB_UNCORE_PCI_IMC_IO_REQUESTS_BASE;
572+ idx = UNCORE_PMC_IDX_FREERUNNING;
573+ break;
528574 default:
529575 return -EINVAL;
530576 }
@@ -598,7 +644,7 @@ static struct intel_uncore_ops snb_uncore_imc_ops = { · 67 unmodified lines
598644
599645 static struct intel_uncore_type snb_uncore_imc = {
600646 .name = "imc",
601− .num_counters = 2,
647+ .num_counters = 5,
602648 .num_boxes = 1,
603649 .num_freerunning_types = SNB_PCI_UNCORE_IMC_FREERUNNING_TYPE_MAX,
604650 .mmio_map_size = SNB_UNCORE_PCI_IMC_MAP_SIZE,
arch/x86/include/asm/efi.h+0−10
@@ -81,11 +81,8 @@ extern unsigned long efi_fw_vendor, efi_config_table; · 80 unmodified lines
8181 kernel_fpu_end(); \
8282 })
8383
84−
8584 #define arch_efi_call_virt(p, f, args...) p->f(args)
8685
87−#define efi_ioremap(addr, size, type, attr) ioremap_cache(addr, size)
88−
8986 #else /* !CONFIG_X86_32 */
9087
9188 #define EFI_LOADER_SIGNATURE "EL64"
@@ -125,9 +122,6 @@ struct efi_scratch { · 33 unmodified lines
125122 kernel_fpu_end(); \
126123 })
127124
128−extern void __iomem *__init efi_ioremap(unsigned long addr, unsigned long size,
129− u32 type, u64 attribute);
130−
131125 #ifdef CONFIG_KASAN
132126 /*
133127 * CONFIG_KASAN may redefine memset to __memset. __memset function is present
@@ -143,17 +137,13 @@ extern void __iomem *__init efi_ioremap(unsigned long addr, unsigned long size, · 9 unmodified lines
143137 #endif /* CONFIG_X86_32 */
144138
145139 extern struct efi_scratch efi_scratch;
146−extern void __init efi_set_executable(efi_memory_desc_t *md, bool executable);
147140 extern int __init efi_memblock_x86_reserve_range(void);
148141 extern void __init efi_print_memmap(void);
149−extern void __init efi_memory_uc(u64 addr, unsigned long size);
150142 extern void __init efi_map_region(efi_memory_desc_t *md);
151143 extern void __init efi_map_region_fixed(efi_memory_desc_t *md);
152144 extern void efi_sync_low_kernel_mappings(void);
153145 extern int __init efi_alloc_page_tables(void);
154146 extern int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages);
155−extern void __init old_map_region(efi_memory_desc_t *md);
156−extern void __init runtime_code_page_mkexec(void);
157147 extern void __init efi_runtime_update_mappings(void);
158148 extern void __init efi_dump_pagetable(void);
159149 extern void __init efi_apply_memmap_quirks(void);
arch/x86/include/asm/entry-common.h+10−2
@@ -18,8 +18,16 @@ static __always_inline void arch_check_user_regs(struct pt_regs *regs) · 17 unmodified lines
1818 * state, not the interrupt state as imagined by Xen.
1919 */
2020 unsigned long flags = native_save_fl();
21− WARN_ON_ONCE(flags & (X86_EFLAGS_AC | X86_EFLAGS_DF |
22− X86_EFLAGS_NT));
21+ unsigned long mask = X86_EFLAGS_DF | X86_EFLAGS_NT;
22+
23+ /*
24+ * For !SMAP hardware we patch out CLAC on entry.
25+ */
26+ if (boot_cpu_has(X86_FEATURE_SMAP) ||
27+ (IS_ENABLED(CONFIG_64_BIT) && boot_cpu_has(X86_FEATURE_XENPV)))
28+ mask |= X86_EFLAGS_AC;
29+
30+ WARN_ON_ONCE(flags & mask);
2331
2432 /* We think we came from user mode. Make sure pt_regs agrees. */
2533 WARN_ON_ONCE(!user_mode(regs));
arch/x86/include/asm/kvm_host.h+2−1
@@ -1596,7 +1596,8 @@ asmlinkage void kvm_spurious_fault(void); · 1595 unmodified lines
15961596 _ASM_EXTABLE(666b, 667b)
15971597
15981598 #define KVM_ARCH_WANT_MMU_NOTIFIER
1599−int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end);
1599+int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end,
1600+ unsigned flags);
16001601 int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
16011602 int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
16021603 int kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
arch/x86/include/asm/mmu.h+1−0
@@ -59,5 +59,6 @@ typedef struct { · 58 unmodified lines
5959 }
6060
6161 void leave_mm(int cpu);
62+#define leave_mm leave_mm
6263
6364 #endif /* _ASM_X86_MMU_H */
arch/x86/include/asm/ptrace.h+1−1
@@ -327,8 +327,8 @@ static inline unsigned long regs_get_kernel_argument(struct pt_regs *regs, · 326 unmodified lines
327327 static const unsigned int argument_offs[] = {
328328 #ifdef __i386__
329329 offsetof(struct pt_regs, ax),
330− offsetof(struct pt_regs, cx),
331330 offsetof(struct pt_regs, dx),
331+ offsetof(struct pt_regs, cx),
332332 #define NR_REG_ARGUMENTS 3
333333 #else
334334 offsetof(struct pt_regs, di),
arch/x86/kernel/alternative.c+1−1
@@ -239,7 +239,7 @@ void __init arch_init_ideal_nops(void) · 238 unmodified lines
239239 return;
240240 }
241241
242− /* fall through */
242+ fallthrough;
243243
244244 default:
245245 #ifdef CONFIG_X86_64
arch/x86/kernel/apic/io_apic.c+2−2
@@ -800,7 +800,7 @@ static int irq_polarity(int idx) · 799 unmodified lines
800800 return IOAPIC_POL_HIGH;
801801 case MP_IRQPOL_RESERVED:
802802 pr_warn("IOAPIC: Invalid polarity: 2, defaulting to low\n");
803− /* fall through */
803+ fallthrough;
804804 case MP_IRQPOL_ACTIVE_LOW:
805805 default: /* Pointless default required due to do gcc stupidity */
806806 return IOAPIC_POL_LOW;
@@ -848,7 +848,7 @@ static int irq_trigger(int idx) · 41 unmodified lines
848848 return IOAPIC_EDGE;
849849 case MP_IRQTRIG_RESERVED:
850850 pr_warn("IOAPIC: Invalid trigger mode 2 defaulting to level\n");
851− /* fall through */
851+ fallthrough;
852852 case MP_IRQTRIG_LEVEL:
853853 default: /* Pointless default required due to do gcc stupidity */
854854 return IOAPIC_LEVEL;
arch/x86/kernel/apic/probe_32.c+1−1
@@ -149,7 +149,7 @@ void __init default_setup_apic_routing(void) · 148 unmodified lines
149149 break;
150150 }
151151 /* P4 and above */
152− /* fall through */
152+ fallthrough;
153153 case X86_VENDOR_HYGON:
154154 case X86_VENDOR_AMD:
155155 def_to_bigsmp = 1;
arch/x86/kernel/apic/vector.c+9−7
@@ -161,6 +161,7 @@ static void apic_update_vector(struct irq_data *irqd, unsigned int newvec, · 160 unmodified lines
161161 apicd->move_in_progress = true;
162162 apicd->prev_vector = apicd->vector;
163163 apicd->prev_cpu = apicd->cpu;
164+ WARN_ON_ONCE(apicd->cpu == newcpu);
164165 } else {
165166 irq_matrix_free(vector_matrix, apicd->cpu, apicd->vector,
166167 managed);
@@ -910,7 +911,7 @@ void send_cleanup_vector(struct irq_cfg *cfg) · 743 unmodified lines
910911 __send_cleanup_vector(apicd);
911912 }
912913
913−static void __irq_complete_move(struct irq_cfg *cfg, unsigned vector)
914+void irq_complete_move(struct irq_cfg *cfg)
914915 {
915916 struct apic_chip_data *apicd;
916917
@@ -918,15 +919,16 @@ static void __irq_complete_move(struct irq_cfg *cfg, unsigned vector) · 1 unmodified line
918919 if (likely(!apicd->move_in_progress))
919920 return;
920921
921− if (vector == apicd->vector && apicd->cpu == smp_processor_id())
922+ /*
923+ * If the interrupt arrived on the new target CPU, cleanup the
924+ * vector on the old target CPU. A vector check is not required
925+ * because an interrupt can never move from one vector to another
926+ * on the same CPU.
927+ */
928+ if (apicd->cpu == smp_processor_id())
922929 __send_cleanup_vector(apicd);
923930 }
924931
925−void irq_complete_move(struct irq_cfg *cfg)
926−{
927− __irq_complete_move(cfg, ~get_irq_regs()->orig_ax);
928−}
929−
930932 /*
931933 * Called from fixup_irqs() with @desc->lock held and interrupts disabled.
932934 */
arch/x86/kernel/cpu/cacheinfo.c+1−1
@@ -248,7 +248,7 @@ amd_cpuid4(int leaf, union _cpuid4_leaf_eax *eax, · 247 unmodified lines
248248 switch (leaf) {
249249 case 1:
250250 l1 = &l1i;
251− /* fall through */
251+ fallthrough;
252252 case 0:
253253 if (!l1->val)
254254 return;
arch/x86/kernel/cpu/mce/inject.c+1−1
@@ -199,7 +199,7 @@ static int raise_local(void) · 198 unmodified lines
199199 * calling irq_enter, but the necessary
200200 * machinery isn't exported currently.
201201 */
202− /*FALL THROUGH*/
202+ fallthrough;
203203 case MCJ_CTX_PROCESS:
204204 raise_exception(m, NULL);
205205 break;
arch/x86/kernel/cpu/mce/intel.c+1−1
@@ -193,7 +193,7 @@ unsigned long cmci_intel_adjust_timer(unsigned long interval) · 192 unmodified lines
193193 if (!atomic_sub_return(1, &cmci_storm_on_cpus))
194194 pr_notice("CMCI storm subsided: switching to interrupt mode\n");
195195
196− /* FALLTHROUGH */
196+ fallthrough;
197197
198198 case CMCI_STORM_SUBSIDED:
199199 /*
arch/x86/kernel/cpu/mtrr/cyrix.c+1−1
@@ -98,7 +98,7 @@ cyrix_get_free_region(unsigned long base, unsigned long size, int replace_reg) · 97 unmodified lines
9898 case 7:
9999 if (size < 0x40)
100100 break;
101− /* Else, fall through */
101+ fallthrough;
102102 case 6:
103103 case 5:
104104 case 4:
arch/x86/kernel/hw_breakpoint.c+1−1
@@ -349,7 +349,7 @@ static int arch_build_bp_info(struct perf_event *bp, · 348 unmodified lines
349349 hw->len = X86_BREAKPOINT_LEN_X;
350350 return 0;
351351 }
352− /* fall through */
352+ fallthrough;
353353 default:
354354 return -EINVAL;
355355 }
arch/x86/kernel/kgdb.c+2−2
@@ -450,7 +450,7 @@ int kgdb_arch_handle_exception(int e_vector, int signo, int err_code, · 449 unmodified lines
450450 ptr = &remcomInBuffer[1];
451451 if (kgdb_hex2long(&ptr, &addr))
452452 linux_regs->ip = addr;
453− /* fall through */
453+ fallthrough;
454454 case 'D':
455455 case 'k':
456456 /* clear the trace bit */
@@ -539,7 +539,7 @@ static int __kgdb_notify(struct die_args *args, unsigned long cmd) · 82 unmodified lines
539539 * a system call which should be ignored
540540 */
541541 return NOTIFY_DONE;
542− /* fall through */
542+ fallthrough;
543543 default:
544544 if (user_mode(regs))
545545 return NOTIFY_DONE;
arch/x86/kernel/mpparse.c+2−2
@@ -312,7 +312,7 @@ static void __init construct_default_ioirq_mptable(int mpc_default_type) · 311 unmodified lines
312312 case 2:
313313 if (i == 0 || i == 13)
314314 continue; /* IRQ0 & IRQ13 not connected */
315− /* fall through */
315+ fallthrough;
316316 default:
317317 if (i == 2)
318318 continue; /* IRQ2 is never connected */
@@ -356,7 +356,7 @@ static void __init construct_ioapic_table(int mpc_default_type) · 37 unmodified lines
356356 default:
357357 pr_err("???\nUnknown standard configuration %d\n",
358358 mpc_default_type);
359− /* fall through */
359+ fallthrough;
360360 case 1:
361361 case 5:
362362 memcpy(bus.bustype, "ISA ", 6);
arch/x86/kernel/process.c+0−4
@@ -684,9 +684,7 @@ void arch_cpu_idle(void) · 683 unmodified lines
684684 */
685685 void __cpuidle default_idle(void)
686686 {
687− trace_cpu_idle_rcuidle(1, smp_processor_id());
688687 safe_halt();
689− trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id());
690688 }
691689 #if defined(CONFIG_APM_MODULE) || defined(CONFIG_HALTPOLL_CPUIDLE_MODULE)
692690 EXPORT_SYMBOL(default_idle);
@@ -792,7 +790,6 @@ static int prefer_mwait_c1_over_halt(const struct cpuinfo_x86 *c) · 99 unmodified lines
792790 static __cpuidle void mwait_idle(void)
793791 {
794792 if (!current_set_polling_and_test()) {
795− trace_cpu_idle_rcuidle(1, smp_processor_id());
796793 if (this_cpu_has(X86_BUG_CLFLUSH_MONITOR)) {
797794 mb(); /* quirk */
798795 clflush((void *)&current_thread_info()->flags);
@@ -804,7 +801,6 @@ static __cpuidle void mwait_idle(void) · 5 unmodified lines
804801 __sti_mwait(0, 0);
805802 else
806803 local_irq_enable();
807− trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id());
808804 } else {
809805 local_irq_enable();
810806 }
arch/x86/kernel/ptrace.c+1−1
@@ -204,7 +204,7 @@ static int set_segment_reg(struct task_struct *task, · 203 unmodified lines
204204 case offsetof(struct user_regs_struct, ss):
205205 if (unlikely(value == 0))
206206 return -EIO;
207− /* Else, fall through */
207+ fallthrough;
208208
209209 default:
210210 *pt_regs_access(task_pt_regs(task), offset) = value;
arch/x86/kernel/reboot.c+1−1
@@ -654,7 +654,7 @@ static void native_machine_emergency_restart(void) · 653 unmodified lines
654654
655655 case BOOT_CF9_FORCE:
656656 port_cf9_safe = true;
657− /* Fall through */
657+ fallthrough;
658658
659659 case BOOT_CF9_SAFE:
660660 if (port_cf9_safe) {
arch/x86/kernel/signal.c+1−1
@@ -726,7 +726,7 @@ handle_signal(struct ksignal *ksig, struct pt_regs *regs) · 725 unmodified lines
726726 regs->ax = -EINTR;
727727 break;
728728 }
729− /* fallthrough */
729+ fallthrough;
730730 case -ERESTARTNOINTR:
731731 regs->ax = regs->orig_ax;
732732 regs->ip -= 2;
arch/x86/kernel/smpboot.c+20−6
@@ -1594,14 +1594,28 @@ int native_cpu_disable(void) · 1593 unmodified lines
15941594 if (ret)
15951595 return ret;
15961596
1597− /*
1598− * Disable the local APIC. Otherwise IPI broadcasts will reach
1599− * it. It still responds normally to INIT, NMI, SMI, and SIPI
1600− * messages.
1601− */
1602− apic_soft_disable();
16031597 cpu_disable_common();
16041598
1599+ /*
1600+ * Disable the local APIC. Otherwise IPI broadcasts will reach
1601+ * it. It still responds normally to INIT, NMI, SMI, and SIPI
1602+ * messages.
1603+ *
1604+ * Disabling the APIC must happen after cpu_disable_common()
1605+ * which invokes fixup_irqs().
1606+ *
1607+ * Disabling the APIC preserves already set bits in IRR, but
1608+ * an interrupt arriving after disabling the local APIC does not
1609+ * set the corresponding IRR bit.
1610+ *
1611+ * fixup_irqs() scans IRR for set bits so it can raise a not
1612+ * yet handled interrupt on the new destination CPU via an IPI
1613+ * but obviously it can't do so for IRR bits which are not set.
1614+ * IOW, interrupts arriving after disabling the local APIC will
1615+ * be lost.
1616+ */
1617+ apic_soft_disable();
1618+
16051619 return 0;
16061620 }
16071621
arch/x86/kernel/traps.c+31−34
@@ -729,20 +729,9 @@ static bool is_sysenter_singlestep(struct pt_regs *regs) · 728 unmodified lines
729729 #endif
730730 }
731731
732−static __always_inline void debug_enter(unsigned long *dr6, unsigned long *dr7)
732+static __always_inline unsigned long debug_read_clear_dr6(void)
733733 {
734− /*
735− * Disable breakpoints during exception handling; recursive exceptions
736− * are exceedingly 'fun'.
737− *
738− * Since this function is NOKPROBE, and that also applies to
739− * HW_BREAKPOINT_X, we can't hit a breakpoint before this (XXX except a
740− * HW_BREAKPOINT_W on our stack)
741− *
742− * Entry text is excluded for HW_BP_X and cpu_entry_area, which
743− * includes the entry stack is excluded for everything.
744− */
745− *dr7 = local_db_save();
734+ unsigned long dr6;
746735
747736 /*
748737 * The Intel SDM says:
@@ -755,15 +744,12 @@ static __always_inline void debug_enter(unsigned long *dr6, unsigned long *dr7) · 6 unmodified lines
755744 *
756745 * Keep it simple: clear DR6 immediately.
757746 */
758− get_debugreg(*dr6, 6);
747+ get_debugreg(dr6, 6);
759748 set_debugreg(0, 6);
760749 /* Filter out all the reserved bits which are preset to 1 */
761− *dr6 &= ~DR6_RESERVED;
762−}
750+ dr6 &= ~DR6_RESERVED;
763751
764−static __always_inline void debug_exit(unsigned long dr7)
765−{
766− local_db_restore(dr7);
752+ return dr6;
767753 }
768754
769755 /*
@@ -863,6 +849,18 @@ out: · 93 unmodified lines
863849 static __always_inline void exc_debug_kernel(struct pt_regs *regs,
864850 unsigned long dr6)
865851 {
852+ /*
853+ * Disable breakpoints during exception handling; recursive exceptions
854+ * are exceedingly 'fun'.
855+ *
856+ * Since this function is NOKPROBE, and that also applies to
857+ * HW_BREAKPOINT_X, we can't hit a breakpoint before this (XXX except a
858+ * HW_BREAKPOINT_W on our stack)
859+ *
860+ * Entry text is excluded for HW_BP_X and cpu_entry_area, which
861+ * includes the entry stack is excluded for everything.
862+ */
863+ unsigned long dr7 = local_db_save();
866864 bool irq_state = idtentry_enter_nmi(regs);
867865 instrumentation_begin();
868866
@@ -883,6 +881,8 @@ static __always_inline void exc_debug_kernel(struct pt_regs *regs, · 14 unmodified lines
883881
884882 instrumentation_end();
885883 idtentry_exit_nmi(regs, irq_state);
884+
885+ local_db_restore(dr7);
886886 }
887887
888888 static __always_inline void exc_debug_user(struct pt_regs *regs,
@@ -894,6 +894,15 @@ static __always_inline void exc_debug_user(struct pt_regs *regs, · 5 unmodified lines
894894 */
895895 WARN_ON_ONCE(!user_mode(regs));
896896
897+ /*
898+ * NB: We can't easily clear DR7 here because
899+ * idtentry_exit_to_usermode() can invoke ptrace, schedule, access
900+ * user memory, etc. This means that a recursive #DB is possible. If
901+ * this happens, that #DB will hit exc_debug_kernel() and clear DR7.
902+ * Since we're not on the IST stack right now, everything will be
903+ * fine.
904+ */
905+
897906 irqentry_enter_from_user_mode(regs);
898907 instrumentation_begin();
899908
@@ -907,36 +916,24 @@ static __always_inline void exc_debug_user(struct pt_regs *regs, · 7 unmodified lines
907916 /* IST stack entry */
908917 DEFINE_IDTENTRY_DEBUG(exc_debug)
909918 {
910− unsigned long dr6, dr7;
911−
912− debug_enter(&dr6, &dr7);
913− exc_debug_kernel(regs, dr6);
914− debug_exit(dr7);
919+ exc_debug_kernel(regs, debug_read_clear_dr6());
915920 }
916921
917922 /* User entry, runs on regular task stack */
918923 DEFINE_IDTENTRY_DEBUG_USER(exc_debug)
919924 {
920− unsigned long dr6, dr7;
921−
922− debug_enter(&dr6, &dr7);
923− exc_debug_user(regs, dr6);
924− debug_exit(dr7);
925+ exc_debug_user(regs, debug_read_clear_dr6());
925926 }
926927 #else
927928 /* 32 bit does not have separate entry points. */
928929 DEFINE_IDTENTRY_RAW(exc_debug)
929930 {
930− unsigned long dr6, dr7;
931−
932− debug_enter(&dr6, &dr7);
931+ unsigned long dr6 = debug_read_clear_dr6();
933932
934933 if (user_mode(regs))
935934 exc_debug_user(regs, dr6);
936935 else
937936 exc_debug_kernel(regs, dr6);
938−
939− debug_exit(dr7);
940937 }
941938 #endif
942939
arch/x86/kernel/uprobes.c+2−2
@@ -735,7 +735,7 @@ static int branch_setup_xol_ops(struct arch_uprobe *auprobe, struct insn *insn) · 734 unmodified lines
735735 * OPCODE1() of the "short" jmp which checks the same condition.
736736 */
737737 opc1 = OPCODE2(insn) - 0x10;
738− /* fall through */
738+ fallthrough;
739739 default:
740740 if (!is_cond_jmp_opcode(opc1))
741741 return -ENOSYS;
@@ -892,7 +892,7 @@ int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, struct mm_struct *mm, · 150 unmodified lines
892892 fix_ip_or_call = 0;
893893 break;
894894 }
895− /* fall through */
895+ fallthrough;
896896 default:
897897 riprel_analyze(auprobe, &insn);
898898 }
arch/x86/kvm/emulate.c+1−1
@@ -3016,7 +3016,7 @@ static void string_registers_quirk(struct x86_emulate_ctxt *ctxt) · 3015 unmodified lines
30163016 case 0xa4: /* movsb */
30173017 case 0xa5: /* movsd/w */
30183018 *reg_rmw(ctxt, VCPU_REGS_RSI) &= (u32)-1;
3019− /* fall through */
3019+ fallthrough;
30203020 case 0xaa: /* stosb */
30213021 case 0xab: /* stosd/w */
30223022 *reg_rmw(ctxt, VCPU_REGS_RDI) &= (u32)-1;
arch/x86/kvm/hyperv.c+1−1
@@ -1779,7 +1779,7 @@ int kvm_hv_hypercall(struct kvm_vcpu *vcpu) · 1778 unmodified lines
17791779 ret = kvm_hvcall_signal_event(vcpu, fast, ingpa);
17801780 if (ret != HV_STATUS_INVALID_PORT_ID)
17811781 break;
1782− /* fall through - maybe userspace knows this conn_id. */
1782+ fallthrough; /* maybe userspace knows this conn_id */
17831783 case HVCALL_POST_MESSAGE:
17841784 /* don't bother userspace if it has no way to handle it */
17851785 if (unlikely(rep || !vcpu_to_synic(vcpu)->active)) {
arch/x86/kvm/irq_comm.c+1−1
@@ -285,7 +285,7 @@ int kvm_set_routing_entry(struct kvm *kvm, · 284 unmodified lines
285285 switch (ue->u.irqchip.irqchip) {
286286 case KVM_IRQCHIP_PIC_SLAVE:
287287 e->irqchip.pin += PIC_NUM_PINS / 2;
288− /* fall through */
288+ fallthrough;
289289 case KVM_IRQCHIP_PIC_MASTER:
290290 if (ue->u.irqchip.pin >= PIC_NUM_PINS / 2)
291291 return -EINVAL;
arch/x86/kvm/lapic.c+3−3
@@ -1053,7 +1053,7 @@ static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode, · 1052 unmodified lines
10531053 switch (delivery_mode) {
10541054 case APIC_DM_LOWEST:
10551055 vcpu->arch.apic_arb_prio++;
1056− /* fall through */
1056+ fallthrough;
10571057 case APIC_DM_FIXED:
10581058 if (unlikely(trig_mode && !level))
10591059 break;
@@ -1341,7 +1341,7 @@ static u32 __apic_read(struct kvm_lapic *apic, unsigned int offset) · 281 unmodified lines
13411341 break;
13421342 case APIC_TASKPRI:
13431343 report_tpr_access(apic, false);
1344− /* fall thru */
1344+ fallthrough;
13451345 default:
13461346 val = kvm_lapic_get_reg(apic, offset);
13471347 break;
@@ -2027,7 +2027,7 @@ int kvm_lapic_reg_write(struct kvm_lapic *apic, u32 reg, u32 val) · 679 unmodified lines
20272027
20282028 case APIC_LVT0:
20292029 apic_manage_nmi_watchdog(apic, val);
2030− /* fall through */
2030+ fallthrough;
20312031 case APIC_LVTTHMR:
20322032 case APIC_LVTPC:
20332033 case APIC_LVT1:
arch/x86/kvm/mmu/mmu.c+3−2
@@ -1916,7 +1916,8 @@ static int kvm_handle_hva(struct kvm *kvm, unsigned long hva, · 1915 unmodified lines
19161916 return kvm_handle_hva_range(kvm, hva, hva + 1, data, handler);
19171917 }
19181918
1919−int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end)
1919+int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end,
1920+ unsigned flags)
19201921 {
19211922 return kvm_handle_hva_range(kvm, start, end, 0, kvm_unmap_rmapp);
19221923 }
@@ -4421,7 +4422,7 @@ __reset_rsvds_bits_mask(struct kvm_vcpu *vcpu, · 2498 unmodified lines
44214422 rsvd_bits(maxphyaddr, 51);
44224423 rsvd_check->rsvd_bits_mask[1][4] =
44234424 rsvd_check->rsvd_bits_mask[0][4];
4424− /* fall through */
4425+ fallthrough;
44254426 case PT64_ROOT_4LEVEL:
44264427 rsvd_check->rsvd_bits_mask[0][3] = exb_bit_rsvd |
44274428 nonleaf_bit8_rsvd | rsvd_bits(7, 7) |
arch/x86/kvm/svm/svm.c+1−1
@@ -2668,7 +2668,7 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr) · 2667 unmodified lines
26682668 case MSR_IA32_APICBASE:
26692669 if (kvm_vcpu_apicv_active(vcpu))
26702670 avic_update_vapic_bar(to_svm(vcpu), data);
2671− /* Fall through */
2671+ fallthrough;
26722672 default:
26732673 return kvm_set_msr_common(vcpu, msr);
26742674 }
arch/x86/kvm/vmx/vmx.c+6−6
@@ -4654,7 +4654,7 @@ static bool rmode_exception(struct kvm_vcpu *vcpu, int vec) · 4653 unmodified lines
46544654 vmcs_read32(VM_EXIT_INSTRUCTION_LEN);
46554655 if (vcpu->guest_debug & KVM_GUESTDBG_USE_SW_BP)
46564656 return false;
4657− /* fall through */
4657+ fallthrough;
46584658 case DB_VECTOR:
46594659 return !(vcpu->guest_debug &
46604660 (KVM_GUESTDBG_SINGLESTEP | KVM_GUESTDBG_USE_HW_BP));
@@ -4827,7 +4827,7 @@ static int handle_exception_nmi(struct kvm_vcpu *vcpu) · 166 unmodified lines
48274827 }
48284828 kvm_run->debug.arch.dr6 = dr6 | DR6_FIXED_1 | DR6_RTM;
48294829 kvm_run->debug.arch.dr7 = vmcs_readl(GUEST_DR7);
4830− /* fall through */
4830+ fallthrough;
48314831 case BP_VECTOR:
48324832 /*
48334833 * Update instruction length as we may reinject #BP from
@@ -5257,7 +5257,7 @@ static int handle_task_switch(struct kvm_vcpu *vcpu) · 423 unmodified lines
52575257 error_code =
52585258 vmcs_read32(IDT_VECTORING_ERROR_CODE);
52595259 }
5260− /* fall through */
5260+ fallthrough;
52615261 case INTR_TYPE_SOFT_EXCEPTION:
52625262 kvm_clear_exception_queue(vcpu);
52635263 break;
@@ -5610,7 +5610,7 @@ static int handle_invpcid(struct kvm_vcpu *vcpu) · 346 unmodified lines
56105610 * keeping track of global entries in shadow page tables.
56115611 */
56125612
5613− /* fall-through */
5613+ fallthrough;
56145614 case INVPCID_TYPE_ALL_INCL_GLOBAL:
56155615 kvm_mmu_unload(vcpu);
56165616 return kvm_skip_emulated_instruction(vcpu);
@@ -6578,7 +6578,7 @@ static void __vmx_complete_interrupts(struct kvm_vcpu *vcpu, · 961 unmodified lines
65786578 break;
65796579 case INTR_TYPE_SOFT_EXCEPTION:
65806580 vcpu->arch.event_exit_inst_len = vmcs_read32(instr_len_field);
6581− /* fall through */
6581+ fallthrough;
65826582 case INTR_TYPE_HARD_EXCEPTION:
65836583 if (idt_vectoring_info & VECTORING_INFO_DELIVER_CODE_MASK) {
65846584 u32 err = vmcs_read32(error_code_field);
@@ -6588,7 +6588,7 @@ static void __vmx_complete_interrupts(struct kvm_vcpu *vcpu, · 3 unmodified lines
65886588 break;
65896589 case INTR_TYPE_SOFT_INTR:
65906590 vcpu->arch.event_exit_inst_len = vmcs_read32(instr_len_field);
6591− /* fall through */
6591+ fallthrough;
65926592 case INTR_TYPE_EXT_INTR:
65936593 kvm_queue_interrupt(vcpu, vector, type == INTR_TYPE_SOFT_INTR);
65946594 break;
arch/x86/kvm/x86.c+8−9
@@ -975,7 +975,7 @@ int kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4) · 974 unmodified lines
975975 {
976976 unsigned long old_cr4 = kvm_read_cr4(vcpu);
977977 unsigned long pdptr_bits = X86_CR4_PGE | X86_CR4_PSE | X86_CR4_PAE |
978− X86_CR4_SMEP | X86_CR4_SMAP | X86_CR4_PKE;
978+ X86_CR4_SMEP;
979979
980980 if (kvm_valid_cr4(vcpu, cr4))
981981 return 1;
@@ -1116,14 +1116,12 @@ static int __kvm_set_dr(struct kvm_vcpu *vcpu, int dr, unsigned long val) · 134 unmodified lines
11161116 vcpu->arch.eff_db[dr] = val;
11171117 break;
11181118 case 4:
1119− /* fall through */
11201119 case 6:
11211120 if (!kvm_dr6_valid(val))
11221121 return -1; /* #GP */
11231122 vcpu->arch.dr6 = (val & DR6_VOLATILE) | kvm_dr6_fixed(vcpu);
11241123 break;
11251124 case 5:
1126− /* fall through */
11271125 default: /* 7 */
11281126 if (!kvm_dr7_valid(val))
11291127 return -1; /* #GP */
@@ -1154,12 +1152,10 @@ int kvm_get_dr(struct kvm_vcpu *vcpu, int dr, unsigned long *val) · 24 unmodified lines
11541152 *val = vcpu->arch.db[array_index_nospec(dr, size)];
11551153 break;
11561154 case 4:
1157− /* fall through */
11581155 case 6:
11591156 *val = vcpu->arch.dr6;
11601157 break;
11611158 case 5:
1162− /* fall through */
11631159 default: /* 7 */
11641160 *val = vcpu->arch.dr7;
11651161 break;
@@ -3051,7 +3047,8 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info) · 1885 unmodified lines
30513047
30523048 case MSR_K7_PERFCTR0 ... MSR_K7_PERFCTR3:
30533049 case MSR_P6_PERFCTR0 ... MSR_P6_PERFCTR1:
3054− pr = true; /* fall through */
3050+ pr = true;
3051+ fallthrough;
30553052 case MSR_K7_EVNTSEL0 ... MSR_K7_EVNTSEL3:
30563053 case MSR_P6_EVNTSEL0 ... MSR_P6_EVNTSEL1:
30573054 if (kvm_pmu_is_valid_msr(vcpu, msr))
@@ -4359,7 +4356,7 @@ static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu, · 1301 unmodified lines
43594356 case KVM_CAP_HYPERV_SYNIC2:
43604357 if (cap->args[0])
43614358 return -EINVAL;
4362− /* fall through */
4359+ fallthrough;
43634360
43644361 case KVM_CAP_HYPERV_SYNIC:
43654362 if (!irqchip_in_kernel(vcpu->kvm))
@@ -8672,7 +8669,7 @@ static inline int vcpu_block(struct kvm *kvm, struct kvm_vcpu *vcpu) · 4306 unmodified lines
86728669 vcpu->arch.pv.pv_unhalted = false;
86738670 vcpu->arch.mp_state =
86748671 KVM_MP_STATE_RUNNABLE;
8675− /* fall through */
8672+ fallthrough;
86768673 case KVM_MP_STATE_RUNNABLE:
86778674 vcpu->arch.apf.halted = false;
86788675 break;
@@ -10751,9 +10748,11 @@ EXPORT_SYMBOL_GPL(kvm_spec_ctrl_test_value); · 2072 unmodified lines
1075110748 void kvm_fixup_and_inject_pf_error(struct kvm_vcpu *vcpu, gva_t gva, u16 error_code)
1075210749 {
1075310750 struct x86_exception fault;
10751+ u32 access = error_code &
10752+ (PFERR_WRITE_MASK | PFERR_FETCH_MASK | PFERR_USER_MASK);
1075410753
1075510754 if (!(error_code & PFERR_PRESENT_MASK) ||
10756− vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, error_code, &fault) != UNMAPPED_GVA) {
10755+ vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, &fault) != UNMAPPED_GVA) {
1075710756 /*
1075810757 * If vcpu->arch.walk_mmu->gva_to_gpa succeeded, the page
1075910758 * tables probably do not match the TLB. Just proceed
arch/x86/lib/Makefile+1−1
@@ -24,7 +24,7 @@ ifdef CONFIG_FUNCTION_TRACER · 23 unmodified lines
2424 CFLAGS_REMOVE_cmdline.o = -pg
2525 endif
2626
27−CFLAGS_cmdline.o := -fno-stack-protector
27+CFLAGS_cmdline.o := -fno-stack-protector -fno-jump-tables
2828 endif
2929
3030 inat_tables_script = $(srctree)/arch/x86/tools/gen-insn-attr-x86.awk
arch/x86/lib/cmdline.c+4−4
@@ -58,7 +58,7 @@ __cmdline_find_option_bool(const char *cmdline, int max_cmdline_size, · 57 unmodified lines
5858 state = st_wordcmp;
5959 opptr = option;
6060 wstart = pos;
61− /* fall through */
61+ fallthrough;
6262
6363 case st_wordcmp:
6464 if (!*opptr) {
@@ -89,7 +89,7 @@ __cmdline_find_option_bool(const char *cmdline, int max_cmdline_size, · 24 unmodified lines
8989 break;
9090 }
9191 state = st_wordskip;
92− /* fall through */
92+ fallthrough;
9393
9494 case st_wordskip:
9595 if (!c)
@@ -151,7 +151,7 @@ __cmdline_find_option(const char *cmdline, int max_cmdline_size, · 55 unmodified lines
151151
152152 state = st_wordcmp;
153153 opptr = option;
154− /* fall through */
154+ fallthrough;
155155
156156 case st_wordcmp:
157157 if ((c == '=') && !*opptr) {
@@ -172,7 +172,7 @@ __cmdline_find_option(const char *cmdline, int max_cmdline_size, · 14 unmodified lines
172172 break;
173173 }
174174 state = st_wordskip;
175− /* fall through */
175+ fallthrough;
176176
177177 case st_wordskip:
178178 if (myisspace(c))
arch/x86/lib/insn-eval.c+2−4
@@ -179,7 +179,7 @@ static int resolve_default_seg(struct insn *insn, struct pt_regs *regs, int off) · 178 unmodified lines
179179 if (insn->addr_bytes == 2)
180180 return -EINVAL;
181181
182− /* fall through */
182+ fallthrough;
183183
184184 case -EDOM:
185185 case offsetof(struct pt_regs, bx):
@@ -362,7 +362,6 @@ static short get_segment_selector(struct pt_regs *regs, int seg_reg_idx) · 176 unmodified lines
362362 case INAT_SEG_REG_GS:
363363 return vm86regs->gs;
364364 case INAT_SEG_REG_IGNORE:
365− /* fall through */
366365 default:
367366 return -EINVAL;
368367 }
@@ -386,7 +385,6 @@ static short get_segment_selector(struct pt_regs *regs, int seg_reg_idx) · 17 unmodified lines
386385 */
387386 return get_user_gs(regs);
388387 case INAT_SEG_REG_IGNORE:
389− /* fall through */
390388 default:
391389 return -EINVAL;
392390 }
@@ -786,7 +784,7 @@ int insn_get_code_seg_params(struct pt_regs *regs) · 393 unmodified lines
786784 */
787785 return INSN_CODE_SEG_PARAMS(4, 8);
788786 case 3: /* Invalid setting. CS.L=1, CS.D=1 */
789− /* fall through */
787+ fallthrough;
790788 default:
791789 return -EINVAL;
792790 }
arch/x86/math-emu/errors.c+1−1
@@ -186,7 +186,7 @@ void FPU_printall(void) · 185 unmodified lines
186186 case TAG_Special:
187187 /* Update tagi for the printk below */
188188 tagi = FPU_Special(r);
189− /* fall through */
189+ fallthrough;
190190 case TAG_Valid:
191191 printk("st(%d) %c .%04lx %04lx %04lx %04lx e%+-6d ", i,
192192 getsign(r) ? '-' : '+',
arch/x86/math-emu/fpu_trig.c+1−1
@@ -1352,7 +1352,7 @@ static void fyl2xp1(FPU_REG *st0_ptr, u_char st0_tag) · 1351 unmodified lines
13521352 case TW_Denormal:
13531353 if (denormal_operand() < 0)
13541354 return;
1355− /* fall through */
1355+ fallthrough;
13561356 case TAG_Zero:
13571357 case TAG_Valid:
13581358 setsign(st0_ptr, getsign(st0_ptr) ^ getsign(st1_ptr));
arch/x86/mm/fault.c+78−0
@@ -190,6 +190,53 @@ static inline pmd_t *vmalloc_sync_one(pgd_t *pgd, unsigned long address) · 189 unmodified lines
190190 return pmd_k;
191191 }
192192
193+/*
194+ * Handle a fault on the vmalloc or module mapping area
195+ *
196+ * This is needed because there is a race condition between the time
197+ * when the vmalloc mapping code updates the PMD to the point in time
198+ * where it synchronizes this update with the other page-tables in the
199+ * system.
200+ *
201+ * In this race window another thread/CPU can map an area on the same
202+ * PMD, finds it already present and does not synchronize it with the
203+ * rest of the system yet. As a result v[mz]alloc might return areas
204+ * which are not mapped in every page-table in the system, causing an
205+ * unhandled page-fault when they are accessed.
206+ */
207+static noinline int vmalloc_fault(unsigned long address)
208+{
209+ unsigned long pgd_paddr;
210+ pmd_t *pmd_k;
211+ pte_t *pte_k;
212+
213+ /* Make sure we are in vmalloc area: */
214+ if (!(address >= VMALLOC_START && address < VMALLOC_END))
215+ return -1;
216+
217+ /*
218+ * Synchronize this task's top level page-table
219+ * with the 'reference' page table.
220+ *
221+ * Do _not_ use "current" here. We might be inside
222+ * an interrupt in the middle of a task switch..
223+ */
224+ pgd_paddr = read_cr3_pa();
225+ pmd_k = vmalloc_sync_one(__va(pgd_paddr), address);
226+ if (!pmd_k)
227+ return -1;
228+
229+ if (pmd_large(*pmd_k))
230+ return 0;
231+
232+ pte_k = pte_offset_kernel(pmd_k, address);
233+ if (!pte_present(*pte_k))
234+ return -1;
235+
236+ return 0;
237+}
238+NOKPROBE_SYMBOL(vmalloc_fault);
239+
193240 void arch_sync_kernel_mappings(unsigned long start, unsigned long end)
194241 {
195242 unsigned long addr;
@@ -1110,6 +1157,37 @@ do_kern_addr_fault(struct pt_regs *regs, unsigned long hw_error_code, · 914 unmodified lines
11101157 */
11111158 WARN_ON_ONCE(hw_error_code & X86_PF_PK);
11121159
1160+#ifdef CONFIG_X86_32
1161+ /*
1162+ * We can fault-in kernel-space virtual memory on-demand. The
1163+ * 'reference' page table is init_mm.pgd.
1164+ *
1165+ * NOTE! We MUST NOT take any locks for this case. We may
1166+ * be in an interrupt or a critical region, and should
1167+ * only copy the information from the master page table,
1168+ * nothing more.
1169+ *
1170+ * Before doing this on-demand faulting, ensure that the
1171+ * fault is not any of the following:
1172+ * 1. A fault on a PTE with a reserved bit set.
1173+ * 2. A fault caused by a user-mode access. (Do not demand-
1174+ * fault kernel memory due to user-mode accesses).
1175+ * 3. A fault caused by a page-level protection violation.
1176+ * (A demand fault would be on a non-present page which
1177+ * would have X86_PF_PROT==0).
1178+ *
1179+ * This is only needed to close a race condition on x86-32 in
1180+ * the vmalloc mapping/unmapping code. See the comment above
1181+ * vmalloc_fault() for details. On x86-64 the race does not
1182+ * exist as the vmalloc mappings don't need to be synchronized
1183+ * there.
1184+ */
1185+ if (!(hw_error_code & (X86_PF_RSVD | X86_PF_USER | X86_PF_PROT))) {
1186+ if (vmalloc_fault(address) >= 0)
1187+ return;
1188+ }
1189+#endif
1190+
11131191 /* Was the fault spurious, caused by lazy TLB invalidation? */
11141192 if (spurious_kernel_fault(hw_error_code, address))
11151193 return;
arch/x86/mm/ioremap.c+1−1
@@ -574,7 +574,7 @@ static bool memremap_should_map_decrypted(resource_size_t phys_addr, · 573 unmodified lines
574574 /* For SEV, these areas are encrypted */
575575 if (sev_active())
576576 break;
577− /* Fallthrough */
577+ fallthrough;
578578
579579 case E820_TYPE_PRAM:
580580 return true;
arch/x86/mm/numa_emulation.c+1−1
@@ -321,7 +321,7 @@ static int __init split_nodes_size_interleave(struct numa_meminfo *ei, · 320 unmodified lines
321321 u64 addr, u64 max_addr, u64 size)
322322 {
323323 return split_nodes_size_interleave_uniform(ei, pi, addr, max_addr, size,
324− 0, NULL, NUMA_NO_NODE);
324+ 0, NULL, 0);
325325 }
326326
327327 static int __init setup_emu2phys_nid(int *dfl_phys_nid)
arch/x86/mm/tlb.c+2−11
@@ -555,21 +555,12 @@ void switch_mm_irqs_off(struct mm_struct *prev, struct mm_struct *next, · 554 unmodified lines
555555 this_cpu_write(cpu_tlbstate.ctxs[new_asid].tlb_gen, next_tlb_gen);
556556 load_new_mm_cr3(next->pgd, new_asid, true);
557557
558− /*
559− * NB: This gets called via leave_mm() in the idle path
560− * where RCU functions differently. Tracing normally
561− * uses RCU, so we need to use the _rcuidle variant.
562− *
563− * (There is no good reason for this. The idle code should
564− * be rearranged to call this before rcu_idle_enter().)
565− */
566− trace_tlb_flush_rcuidle(TLB_FLUSH_ON_TASK_SWITCH, TLB_FLUSH_ALL);
558+ trace_tlb_flush(TLB_FLUSH_ON_TASK_SWITCH, TLB_FLUSH_ALL);
567559 } else {
568560 /* The new ASID is already up to date. */
569561 load_new_mm_cr3(next->pgd, new_asid, false);
570562
571− /* See above wrt _rcuidle. */
572− trace_tlb_flush_rcuidle(TLB_FLUSH_ON_TASK_SWITCH, 0);
563+ trace_tlb_flush(TLB_FLUSH_ON_TASK_SWITCH, 0);
573564 }
574565
575566 /* Make sure we write CR3 before loaded_mm. */
arch/x86/pci/xen.c+1−0
@@ -26,6 +26,7 @@ · 25 unmodified lines
2626 #include <asm/xen/pci.h>
2727 #include <asm/xen/cpuid.h>
2828 #include <asm/apic.h>
29+#include <asm/acpi.h>
2930 #include <asm/i8259.h>
3031
3132 static int xen_pcifront_enable_irq(struct pci_dev *dev)
arch/x86/platform/efi/efi.c+0−69
@@ -49,7 +49,6 @@ · 48 unmodified lines
4949 #include <asm/efi.h>
5050 #include <asm/e820/api.h>
5151 #include <asm/time.h>
52−#include <asm/set_memory.h>
5352 #include <asm/tlbflush.h>
5453 #include <asm/x86_init.h>
5554 #include <asm/uv/uv.h>
@@ -496,74 +495,6 @@ void __init efi_init(void) · 440 unmodified lines
496495 efi_print_memmap();
497496 }
498497
499−#if defined(CONFIG_X86_32)
500−
501−void __init efi_set_executable(efi_memory_desc_t *md, bool executable)
502−{
503− u64 addr, npages;
504−
505− addr = md->virt_addr;
506− npages = md->num_pages;
507−
508− memrange_efi_to_native(&addr, &npages);
509−
510− if (executable)
511− set_memory_x(addr, npages);
512− else
513− set_memory_nx(addr, npages);
514−}
515−
516−void __init runtime_code_page_mkexec(void)
517−{
518− efi_memory_desc_t *md;
519−
520− /* Make EFI runtime service code area executable */
521− for_each_efi_memory_desc(md) {
522− if (md->type != EFI_RUNTIME_SERVICES_CODE)
523− continue;
524−
525− efi_set_executable(md, true);
526− }
527−}
528−
529−void __init efi_memory_uc(u64 addr, unsigned long size)
530−{
531− unsigned long page_shift = 1UL << EFI_PAGE_SHIFT;
532− u64 npages;
533−
534− npages = round_up(size, page_shift) / page_shift;
535− memrange_efi_to_native(&addr, &npages);
536− set_memory_uc(addr, npages);
537−}
538−
539−void __init old_map_region(efi_memory_desc_t *md)
540−{
541− u64 start_pfn, end_pfn, end;
542− unsigned long size;
543− void *va;
544−
545− start_pfn = PFN_DOWN(md->phys_addr);
546− size = md->num_pages << PAGE_SHIFT;
547− end = md->phys_addr + size;
548− end_pfn = PFN_UP(end);
549−
550− if (pfn_range_is_mapped(start_pfn, end_pfn)) {
551− va = __va(md->phys_addr);
552−
553− if (!(md->attribute & EFI_MEMORY_WB))
554− efi_memory_uc((u64)(unsigned long)va, size);
555− } else
556− va = efi_ioremap(md->phys_addr, size,
557− md->type, md->attribute);
558−
559− md->virt_addr = (u64) (unsigned long) va;
560− if (!va)
561− pr_err("ioremap of 0x%llX failed!\n",
562− (unsigned long long)md->phys_addr);
563−}
564−
565−#endif
566−
567498 /* Merge contiguous regions of the same type and attribute */
568499 static void __init efi_merge_regions(void)
569500 {
arch/x86/platform/efi/efi_32.c+37−7
@@ -29,9 +29,35 @@ · 28 unmodified lines
2929 #include <asm/io.h>
3030 #include <asm/desc.h>
3131 #include <asm/page.h>
32+#include <asm/set_memory.h>
3233 #include <asm/tlbflush.h>
3334 #include <asm/efi.h>
3435
36+void __init efi_map_region(efi_memory_desc_t *md)
37+{
38+ u64 start_pfn, end_pfn, end;
39+ unsigned long size;
40+ void *va;
41+
42+ start_pfn = PFN_DOWN(md->phys_addr);
43+ size = md->num_pages << PAGE_SHIFT;
44+ end = md->phys_addr + size;
45+ end_pfn = PFN_UP(end);
46+
47+ if (pfn_range_is_mapped(start_pfn, end_pfn)) {
48+ va = __va(md->phys_addr);
49+
50+ if (!(md->attribute & EFI_MEMORY_WB))
51+ set_memory_uc((unsigned long)va, md->num_pages);
52+ } else {
53+ va = ioremap_cache(md->phys_addr, size);
54+ }
55+
56+ md->virt_addr = (unsigned long)va;
57+ if (!va)
58+ pr_err("ioremap of 0x%llX failed!\n", md->phys_addr);
59+}
60+
3561 /*
3662 * To make EFI call EFI runtime service in physical addressing mode we need
3763 * prolog/epilog before/after the invocation to claim the EFI runtime service
@@ -58,11 +84,6 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages) · 20 unmodified lines
5884 return 0;
5985 }
6086
61−void __init efi_map_region(efi_memory_desc_t *md)
62−{
63− old_map_region(md);
64−}
65−
6687 void __init efi_map_region_fixed(efi_memory_desc_t *md) {}
6788 void __init parse_efi_setup(u64 phys_addr, u32 data_len) {}
6889
@@ -107,6 +128,15 @@ efi_status_t __init efi_set_virtual_address_map(unsigned long memory_map_size, · 38 unmodified lines
107128
108129 void __init efi_runtime_update_mappings(void)
109130 {
110− if (__supported_pte_mask & _PAGE_NX)
111− runtime_code_page_mkexec();
131+ if (__supported_pte_mask & _PAGE_NX) {
132+ efi_memory_desc_t *md;
133+
134+ /* Make EFI runtime service code area executable */
135+ for_each_efi_memory_desc(md) {
136+ if (md->type != EFI_RUNTIME_SERVICES_CODE)
137+ continue;
138+
139+ set_memory_x(md->virt_addr, md->num_pages);
140+ }
141+ }
112142 }
arch/x86/platform/efi/efi_64.c+2−0
@@ -259,6 +259,8 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages) · 258 unmodified lines
259259 npages = (__end_rodata - __start_rodata) >> PAGE_SHIFT;
260260 rodata = __pa(__start_rodata);
261261 pfn = rodata >> PAGE_SHIFT;
262+
263+ pf = _PAGE_NX | _PAGE_ENC;
262264 if (kernel_map_pages_in_pgd(pgd, pfn, rodata, npages, pf)) {
263265 pr_err("Failed to map kernel rodata 1:1\n");
264266 return 1;
arch/xtensa/kernel/signal.c+1−1
@@ -448,7 +448,7 @@ static void do_signal(struct pt_regs *regs) · 447 unmodified lines
448448 regs->areg[2] = -EINTR;
449449 break;
450450 }
451− /* fallthrough */
451+ fallthrough;
452452 case -ERESTARTNOINTR:
453453 regs->areg[2] = regs->syscall;
454454 regs->pc -= 3;
block/badblocks.c+1−1
@@ -525,7 +525,7 @@ ssize_t badblocks_store(struct badblocks *bb, const char *page, size_t len, · 524 unmodified lines
525525 case 3:
526526 if (newline != '\n')
527527 return -EINVAL;
528− /* fall through */
528+ fallthrough;
529529 case 2:
530530 if (length <= 0)
531531 return -EINVAL;
block/bfq-cgroup.c+1−1
@@ -332,7 +332,7 @@ static void bfqg_put(struct bfq_group *bfqg) · 331 unmodified lines
332332 kfree(bfqg);
333333 }
334334
335−void bfqg_and_blkg_get(struct bfq_group *bfqg)
335+static void bfqg_and_blkg_get(struct bfq_group *bfqg)
336336 {
337337 /* see comments in bfq_bic_update_cgroup for why refcounting bfqg */
338338 bfqg_get(bfqg);
block/bfq-iosched.c+2−2
@@ -4980,7 +4980,7 @@ bfq_set_next_ioprio_data(struct bfq_queue *bfqq, struct bfq_io_cq *bic) · 4979 unmodified lines
49804980 pr_err("bdi %s: bfq: bad prio class %d\n",
49814981 bdi_dev_name(bfqq->bfqd->queue->backing_dev_info),
49824982 ioprio_class);
4983− /* fall through */
4983+ fallthrough;
49844984 case IOPRIO_CLASS_NONE:
49854985 /*
49864986 * No prio set, inherit CPU scheduling settings.
@@ -5112,7 +5112,7 @@ static struct bfq_queue **bfq_async_queue_prio(struct bfq_data *bfqd, · 125 unmodified lines
51125112 return &bfqg->async_bfqq[0][ioprio];
51135113 case IOPRIO_CLASS_NONE:
51145114 ioprio = IOPRIO_NORM;
5115− /* fall through */
5115+ fallthrough;
51165116 case IOPRIO_CLASS_BE:
51175117 return &bfqg->async_bfqq[1][ioprio];
51185118 case IOPRIO_CLASS_IDLE:
block/bfq-iosched.h+0−1
@@ -986,7 +986,6 @@ struct bfq_group *bfq_find_set_group(struct bfq_data *bfqd, · 985 unmodified lines
986986 struct blkcg_gq *bfqg_to_blkg(struct bfq_group *bfqg);
987987 struct bfq_group *bfqq_group(struct bfq_queue *bfqq);
988988 struct bfq_group *bfq_create_group_hierarchy(struct bfq_data *bfqd, int node);
989−void bfqg_and_blkg_get(struct bfq_group *bfqg);
990989 void bfqg_and_blkg_put(struct bfq_group *bfqg);
991990
992991 #ifdef CONFIG_BFQ_GROUP_IOSCHED
block/bfq-wf2q.c+2−10
@@ -533,9 +533,7 @@ static void bfq_get_entity(struct bfq_entity *entity) · 532 unmodified lines
533533 bfqq->ref++;
534534 bfq_log_bfqq(bfqq->bfqd, bfqq, "get_entity: %p %d",
535535 bfqq, bfqq->ref);
536− } else
537− bfqg_and_blkg_get(container_of(entity, struct bfq_group,
538− entity));
536+ }
539537 }
540538
541539 /**
@@ -649,14 +647,8 @@ static void bfq_forget_entity(struct bfq_service_tree *st, · 107 unmodified lines
649647
650648 entity->on_st_or_in_serv = false;
651649 st->wsum -= entity->weight;
652− if (is_in_service)
653− return;
654−
655− if (bfqq)
650+ if (bfqq && !is_in_service)
656651 bfq_put_queue(bfqq);
657− else
658− bfqg_and_blkg_put(container_of(entity, struct bfq_group,
659− entity));
660652 }
661653
662654 /**
block/bio.c+5−5
@@ -740,8 +740,8 @@ static inline bool page_is_mergeable(const struct bio_vec *bv, · 739 unmodified lines
740740 struct page *page, unsigned int len, unsigned int off,
741741 bool *same_page)
742742 {
743− phys_addr_t vec_end_addr = page_to_phys(bv->bv_page) +
744− bv->bv_offset + bv->bv_len - 1;
743+ size_t bv_end = bv->bv_offset + bv->bv_len;
744+ phys_addr_t vec_end_addr = page_to_phys(bv->bv_page) + bv_end - 1;
745745 phys_addr_t page_addr = page_to_phys(page);
746746
747747 if (vec_end_addr + 1 != page_addr + off)
@@ -750,9 +750,9 @@ static inline bool page_is_mergeable(const struct bio_vec *bv, · 2 unmodified lines
750750 return false;
751751
752752 *same_page = ((vec_end_addr & PAGE_MASK) == page_addr);
753− if (!*same_page && pfn_to_page(PFN_DOWN(vec_end_addr)) + 1 != page)
754− return false;
755− return true;
753+ if (*same_page)
754+ return true;
755+ return (bv->bv_page + bv_end / PAGE_SIZE) == (page + off / PAGE_SIZE);
756756 }
757757
758758 /*
block/blk-cgroup.c+5−3
@@ -1152,13 +1152,15 @@ int blkcg_init_queue(struct request_queue *q) · 1151 unmodified lines
11521152 if (preloaded)
11531153 radix_tree_preload_end();
11541154
1155− ret = blk_iolatency_init(q);
1155+ ret = blk_throtl_init(q);
11561156 if (ret)
11571157 goto err_destroy_all;
11581158
1159− ret = blk_throtl_init(q);
1160− if (ret)
1159+ ret = blk_iolatency_init(q);
1160+ if (ret) {
1161+ blk_throtl_exit(q);
11611162 goto err_destroy_all;
1163+ }
11621164 return 0;
11631165
11641166 err_destroy_all:
block/blk-core.c+1−0
@@ -539,6 +539,7 @@ struct request_queue *blk_alloc_queue(int node_id) · 538 unmodified lines
539539 goto fail_stats;
540540
541541 q->backing_dev_info->ra_pages = VM_READAHEAD_PAGES;
542+ q->backing_dev_info->io_pages = VM_READAHEAD_PAGES;
542543 q->backing_dev_info->capabilities = BDI_CAP_CGROUP_WRITEBACK;
543544 q->node = node_id;
544545
block/blk-iocost.c+3−2
@@ -2092,14 +2092,15 @@ static void ioc_pd_free(struct blkg_policy_data *pd) · 2091 unmodified lines
20922092 {
20932093 struct ioc_gq *iocg = pd_to_iocg(pd);
20942094 struct ioc *ioc = iocg->ioc;
2095+ unsigned long flags;
20952096
20962097 if (ioc) {
2097− spin_lock(&ioc->lock);
2098+ spin_lock_irqsave(&ioc->lock, flags);
20982099 if (!list_empty(&iocg->active_list)) {
20992100 propagate_active_weight(iocg, 0, 0);
21002101 list_del_init(&iocg->active_list);
21012102 }
2102− spin_unlock(&ioc->lock);
2103+ spin_unlock_irqrestore(&ioc->lock, flags);
21032104
21042105 hrtimer_cancel(&iocg->waitq_timer);
21052106 hrtimer_cancel(&iocg->delay_timer);
block/blk-merge.c+10−3
@@ -154,7 +154,7 @@ static inline unsigned get_max_io_size(struct request_queue *q, · 153 unmodified lines
154154 if (max_sectors > start_offset)
155155 return max_sectors - start_offset;
156156
157− return sectors & (lbs - 1);
157+ return sectors & ~(lbs - 1);
158158 }
159159
160160 static inline unsigned get_max_segment_size(const struct request_queue *q,
@@ -533,10 +533,17 @@ int __blk_rq_map_sg(struct request_queue *q, struct request *rq, · 372 unmodified lines
533533 }
534534 EXPORT_SYMBOL(__blk_rq_map_sg);
535535
536+static inline unsigned int blk_rq_get_max_segments(struct request *rq)
537+{
538+ if (req_op(rq) == REQ_OP_DISCARD)
539+ return queue_max_discard_segments(rq->q);
540+ return queue_max_segments(rq->q);
541+}
542+
536543 static inline int ll_new_hw_segment(struct request *req, struct bio *bio,
537544 unsigned int nr_phys_segs)
538545 {
539− if (req->nr_phys_segments + nr_phys_segs > queue_max_segments(req->q))
546+ if (req->nr_phys_segments + nr_phys_segs > blk_rq_get_max_segments(req))
540547 goto no_merge;
541548
542549 if (blk_integrity_merge_bio(req->q, req, bio) == false)
@@ -624,7 +631,7 @@ static int ll_merge_requests_fn(struct request_queue *q, struct request *req, · 81 unmodified lines
624631 return 0;
625632
626633 total_phys_segments = req->nr_phys_segments + next->nr_phys_segments;
627− if (total_phys_segments > queue_max_segments(q))
634+ if (total_phys_segments > blk_rq_get_max_segments(req))
628635 return 0;
629636
630637 if (blk_integrity_merge_rq(q, req, next) == false)
block/blk-mq-sched.c+9−0
@@ -78,6 +78,15 @@ void blk_mq_sched_restart(struct blk_mq_hw_ctx *hctx) · 77 unmodified lines
7878 return;
7979 clear_bit(BLK_MQ_S_SCHED_RESTART, &hctx->state);
8080
81+ /*
82+ * Order clearing SCHED_RESTART and list_empty_careful(&hctx->dispatch)
83+ * in blk_mq_run_hw_queue(). Its pair is the barrier in
84+ * blk_mq_dispatch_rq_list(). So dispatch code won't see SCHED_RESTART,
85+ * meantime new request added to hctx->dispatch is missed to check in
86+ * blk_mq_run_hw_queue().
87+ */
88+ smp_mb();
89+
8190 blk_mq_run_hw_queue(hctx, true);
8291 }
8392
block/blk-mq.c+12−1
@@ -1437,6 +1437,15 @@ out: · 1436 unmodified lines
14371437 list_splice_tail_init(list, &hctx->dispatch);
14381438 spin_unlock(&hctx->lock);
14391439
1440+ /*
1441+ * Order adding requests to hctx->dispatch and checking
1442+ * SCHED_RESTART flag. The pair of this smp_mb() is the one
1443+ * in blk_mq_sched_restart(). Avoid restart code path to
1444+ * miss the new added requests to hctx->dispatch, meantime
1445+ * SCHED_RESTART is observed here.
1446+ */
1447+ smp_mb();
1448+
14401449 /*
14411450 * If SCHED_RESTART was set by the caller of this function and
14421451 * it is no longer set that means that it was cleared by another
@@ -1834,6 +1843,7 @@ void __blk_mq_insert_request(struct blk_mq_hw_ctx *hctx, struct request *rq, · 391 unmodified lines
18341843 /**
18351844 * blk_mq_request_bypass_insert - Insert a request at dispatch list.
18361845 * @rq: Pointer to request to be inserted.
1846+ * @at_head: true if the request should be inserted at the head of the list.
18371847 * @run_queue: If we should run the hardware queue after inserting the request.
18381848 *
18391849 * Should only be used carefully, when the caller knows we want to
@@ -2016,7 +2026,8 @@ insert: · 176 unmodified lines
20162026 if (bypass_insert)
20172027 return BLK_STS_RESOURCE;
20182028
2019− blk_mq_request_bypass_insert(rq, false, run_queue);
2029+ blk_mq_sched_insert_request(rq, false, run_queue, false);
2030+
20202031 return BLK_STS_OK;
20212032 }
20222033
block/blk-stat.c+11−6
@@ -137,6 +137,7 @@ void blk_stat_add_callback(struct request_queue *q, · 136 unmodified lines
137137 struct blk_stat_callback *cb)
138138 {
139139 unsigned int bucket;
140+ unsigned long flags;
140141 int cpu;
141142
142143 for_each_possible_cpu(cpu) {
@@ -147,20 +148,22 @@ void blk_stat_add_callback(struct request_queue *q, · 4 unmodified lines
147148 blk_rq_stat_init(&cpu_stat[bucket]);
148149 }
149150
150− spin_lock(&q->stats->lock);
151+ spin_lock_irqsave(&q->stats->lock, flags);
151152 list_add_tail_rcu(&cb->list, &q->stats->callbacks);
152153 blk_queue_flag_set(QUEUE_FLAG_STATS, q);
153− spin_unlock(&q->stats->lock);
154+ spin_unlock_irqrestore(&q->stats->lock, flags);
154155 }
155156
156157 void blk_stat_remove_callback(struct request_queue *q,
157158 struct blk_stat_callback *cb)
158159 {
159− spin_lock(&q->stats->lock);
160+ unsigned long flags;
161+
162+ spin_lock_irqsave(&q->stats->lock, flags);
160163 list_del_rcu(&cb->list);
161164 if (list_empty(&q->stats->callbacks) && !q->stats->enable_accounting)
162165 blk_queue_flag_clear(QUEUE_FLAG_STATS, q);
163− spin_unlock(&q->stats->lock);
166+ spin_unlock_irqrestore(&q->stats->lock, flags);
164167
165168 del_timer_sync(&cb->timer);
166169 }
@@ -183,10 +186,12 @@ void blk_stat_free_callback(struct blk_stat_callback *cb) · 16 unmodified lines
183186
184187 void blk_stat_enable_accounting(struct request_queue *q)
185188 {
186− spin_lock(&q->stats->lock);
189+ unsigned long flags;
190+
191+ spin_lock_irqsave(&q->stats->lock, flags);
187192 q->stats->enable_accounting = true;
188193 blk_queue_flag_set(QUEUE_FLAG_STATS, q);
189− spin_unlock(&q->stats->lock);
194+ spin_unlock_irqrestore(&q->stats->lock, flags);
190195 }
191196 EXPORT_SYMBOL_GPL(blk_stat_enable_accounting);
192197
block/blk-wbt.c+1−1
@@ -528,7 +528,7 @@ static inline bool wbt_should_throttle(struct rq_wb *rwb, struct bio *bio) · 527 unmodified lines
528528 if ((bio->bi_opf & (REQ_SYNC | REQ_IDLE)) ==
529529 (REQ_SYNC | REQ_IDLE))
530530 return false;
531− /* fallthrough */
531+ fallthrough;
532532 case REQ_OP_DISCARD:
533533 return true;
534534 default:
block/bsg-lib.c+1−1
@@ -378,7 +378,7 @@ struct request_queue *bsg_setup_queue(struct device *dev, const char *name, · 377 unmodified lines
378378 bset->timeout_fn = timeout;
379379
380380 set = &bset->tag_set;
381− set->ops = &bsg_mq_ops,
381+ set->ops = &bsg_mq_ops;
382382 set->nr_hw_queues = 1;
383383 set->queue_depth = 128;
384384 set->numa_node = NUMA_NO_NODE;
block/ioprio.c+1−1
@@ -71,7 +71,7 @@ int ioprio_check_cap(int ioprio) · 70 unmodified lines
7171 case IOPRIO_CLASS_RT:
7272 if (!capable(CAP_SYS_ADMIN))
7373 return -EPERM;
74− /* fall through */
74+ fallthrough;
7575 /* rt has prio field too */
7676 case IOPRIO_CLASS_BE:
7777 if (data >= IOPRIO_BE_NR || data < 0)
block/partitions/core.c+22−15
@@ -278,6 +278,15 @@ static void hd_struct_free_work(struct work_struct *work) · 277 unmodified lines
278278 {
279279 struct hd_struct *part =
280280 container_of(to_rcu_work(work), struct hd_struct, rcu_work);
281+ struct gendisk *disk = part_to_disk(part);
282+
283+ /*
284+ * Release the disk reference acquired in delete_partition here.
285+ * We can't release it in hd_struct_free because the final put_device
286+ * needs process context and thus can't be run directly from a
287+ * percpu_ref ->release handler.
288+ */
289+ put_device(disk_to_dev(disk));
281290
282291 part->start_sect = 0;
283292 part->nr_sects = 0;
@@ -293,7 +302,6 @@ static void hd_struct_free(struct percpu_ref *ref) · 9 unmodified lines
293302 rcu_dereference_protected(disk->part_tbl, 1);
294303
295304 rcu_assign_pointer(ptbl->last_lookup, NULL);
296− put_device(disk_to_dev(disk));
297305
298306 INIT_RCU_WORK(&part->rcu_work, hd_struct_free_work);
299307 queue_rcu_work(system_wq, &part->rcu_work);
@@ -524,19 +532,20 @@ int bdev_add_partition(struct block_device *bdev, int partno, · 224 unmodified lines
524532 int bdev_del_partition(struct block_device *bdev, int partno)
525533 {
526534 struct block_device *bdevp;
527− struct hd_struct *part;
528− int ret = 0;
535+ struct hd_struct *part = NULL;
536+ int ret;
529537
530− part = disk_get_part(bdev->bd_disk, partno);
531− if (!part)
532− return -ENXIO;
533−
534− ret = -ENOMEM;
535− bdevp = bdget(part_devt(part));
538+ bdevp = bdget_disk(bdev->bd_disk, partno);
536539 if (!bdevp)
537− goto out_put_part;
540+ return -ENOMEM;
538541
539542 mutex_lock(&bdevp->bd_mutex);
543+ mutex_lock_nested(&bdev->bd_mutex, 1);
544+
545+ ret = -ENXIO;
546+ part = disk_get_part(bdev->bd_disk, partno);
547+ if (!part)
548+ goto out_unlock;
540549
541550 ret = -EBUSY;
542551 if (bdevp->bd_openers)
@@ -545,16 +554,14 @@ int bdev_del_partition(struct block_device *bdev, int partno) · 2 unmodified lines
545554 sync_blockdev(bdevp);
546555 invalidate_bdev(bdevp);
547556
548− mutex_lock_nested(&bdev->bd_mutex, 1);
549557 delete_partition(bdev->bd_disk, part);
550− mutex_unlock(&bdev->bd_mutex);
551−
552558 ret = 0;
553559 out_unlock:
560+ mutex_unlock(&bdev->bd_mutex);
554561 mutex_unlock(&bdevp->bd_mutex);
555562 bdput(bdevp);
556−out_put_part:
557− disk_put_part(part);
563+ if (part)
564+ disk_put_part(part);
558565 return ret;
559566 }
560567
crypto/af_alg.c+10−3
@@ -16,6 +16,7 @@ · 15 unmodified lines
1616 #include <linux/module.h>
1717 #include <linux/net.h>
1818 #include <linux/rwsem.h>
19+#include <linux/sched.h>
1920 #include <linux/sched/signal.h>
2021 #include <linux/security.h>
2122
@@ -845,9 +846,15 @@ int af_alg_sendmsg(struct socket *sock, struct msghdr *msg, size_t size, · 823 unmodified lines
845846 }
846847
847848 lock_sock(sk);
848− if (ctx->init && (init || !ctx->more)) {
849− err = -EINVAL;
850− goto unlock;
849+ if (ctx->init && !ctx->more) {
850+ if (ctx->used) {
851+ err = -EINVAL;
852+ goto unlock;
853+ }
854+
855+ pr_info_once(
856+ "%s sent an empty control message without MSG_MORE.\n",
857+ current->comm);
851858 }
852859 ctx->init = true;
853860
crypto/drbg.c+1−1
@@ -1521,7 +1521,7 @@ static int drbg_prepare_hrng(struct drbg_state *drbg) · 1520 unmodified lines
15211521
15221522 case -EALREADY:
15231523 err = 0;
1524− /* fall through */
1524+ fallthrough;
15251525
15261526 default:
15271527 drbg->random_ready.func = NULL;
crypto/tcrypt.c+57−57
@@ -2348,121 +2348,121 @@ static int do_test(const char *alg, u32 type, u32 mask, int m, u32 num_mb) · 2347 unmodified lines
23482348 test_hash_speed(alg, sec, generic_hash_speed_template);
23492349 break;
23502350 }
2351− /* fall through */
2351+ fallthrough;
23522352 case 301:
23532353 test_hash_speed("md4", sec, generic_hash_speed_template);
23542354 if (mode > 300 && mode < 400) break;
2355− /* fall through */
2355+ fallthrough;
23562356 case 302:
23572357 test_hash_speed("md5", sec, generic_hash_speed_template);
23582358 if (mode > 300 && mode < 400) break;
2359− /* fall through */
2359+ fallthrough;
23602360 case 303:
23612361 test_hash_speed("sha1", sec, generic_hash_speed_template);
23622362 if (mode > 300 && mode < 400) break;
2363− /* fall through */
2363+ fallthrough;
23642364 case 304:
23652365 test_hash_speed("sha256", sec, generic_hash_speed_template);
23662366 if (mode > 300 && mode < 400) break;
2367− /* fall through */
2367+ fallthrough;
23682368 case 305:
23692369 test_hash_speed("sha384", sec, generic_hash_speed_template);
23702370 if (mode > 300 && mode < 400) break;
2371− /* fall through */
2371+ fallthrough;
23722372 case 306:
23732373 test_hash_speed("sha512", sec, generic_hash_speed_template);
23742374 if (mode > 300 && mode < 400) break;
2375− /* fall through */
2375+ fallthrough;
23762376 case 307:
23772377 test_hash_speed("wp256", sec, generic_hash_speed_template);
23782378 if (mode > 300 && mode < 400) break;
2379− /* fall through */
2379+ fallthrough;
23802380 case 308:
23812381 test_hash_speed("wp384", sec, generic_hash_speed_template);
23822382 if (mode > 300 && mode < 400) break;
2383− /* fall through */
2383+ fallthrough;
23842384 case 309:
23852385 test_hash_speed("wp512", sec, generic_hash_speed_template);
23862386 if (mode > 300 && mode < 400) break;
2387− /* fall through */
2387+ fallthrough;
23882388 case 310:
23892389 test_hash_speed("tgr128", sec, generic_hash_speed_template);
23902390 if (mode > 300 && mode < 400) break;
2391− /* fall through */
2391+ fallthrough;
23922392 case 311:
23932393 test_hash_speed("tgr160", sec, generic_hash_speed_template);
23942394 if (mode > 300 && mode < 400) break;
2395− /* fall through */
2395+ fallthrough;
23962396 case 312:
23972397 test_hash_speed("tgr192", sec, generic_hash_speed_template);
23982398 if (mode > 300 && mode < 400) break;
2399− /* fall through */
2399+ fallthrough;
24002400 case 313:
24012401 test_hash_speed("sha224", sec, generic_hash_speed_template);
24022402 if (mode > 300 && mode < 400) break;
2403− /* fall through */
2403+ fallthrough;
24042404 case 314:
24052405 test_hash_speed("rmd128", sec, generic_hash_speed_template);
24062406 if (mode > 300 && mode < 400) break;
2407− /* fall through */
2407+ fallthrough;
24082408 case 315:
24092409 test_hash_speed("rmd160", sec, generic_hash_speed_template);
24102410 if (mode > 300 && mode < 400) break;
2411− /* fall through */
2411+ fallthrough;
24122412 case 316:
24132413 test_hash_speed("rmd256", sec, generic_hash_speed_template);
24142414 if (mode > 300 && mode < 400) break;
2415− /* fall through */
2415+ fallthrough;
24162416 case 317:
24172417 test_hash_speed("rmd320", sec, generic_hash_speed_template);
24182418 if (mode > 300 && mode < 400) break;
2419− /* fall through */
2419+ fallthrough;
24202420 case 318:
24212421 test_hash_speed("ghash-generic", sec, hash_speed_template_16);
24222422 if (mode > 300 && mode < 400) break;
2423− /* fall through */
2423+ fallthrough;
24242424 case 319:
24252425 test_hash_speed("crc32c", sec, generic_hash_speed_template);
24262426 if (mode > 300 && mode < 400) break;
2427− /* fall through */
2427+ fallthrough;
24282428 case 320:
24292429 test_hash_speed("crct10dif", sec, generic_hash_speed_template);
24302430 if (mode > 300 && mode < 400) break;
2431− /* fall through */
2431+ fallthrough;
24322432 case 321:
24332433 test_hash_speed("poly1305", sec, poly1305_speed_template);
24342434 if (mode > 300 && mode < 400) break;
2435− /* fall through */
2435+ fallthrough;
24362436 case 322:
24372437 test_hash_speed("sha3-224", sec, generic_hash_speed_template);
24382438 if (mode > 300 && mode < 400) break;
2439− /* fall through */
2439+ fallthrough;
24402440 case 323:
24412441 test_hash_speed("sha3-256", sec, generic_hash_speed_template);
24422442 if (mode > 300 && mode < 400) break;
2443− /* fall through */
2443+ fallthrough;
24442444 case 324:
24452445 test_hash_speed("sha3-384", sec, generic_hash_speed_template);
24462446 if (mode > 300 && mode < 400) break;
2447− /* fall through */
2447+ fallthrough;
24482448 case 325:
24492449 test_hash_speed("sha3-512", sec, generic_hash_speed_template);
24502450 if (mode > 300 && mode < 400) break;
2451− /* fall through */
2451+ fallthrough;
24522452 case 326:
24532453 test_hash_speed("sm3", sec, generic_hash_speed_template);
24542454 if (mode > 300 && mode < 400) break;
2455− /* fall through */
2455+ fallthrough;
24562456 case 327:
24572457 test_hash_speed("streebog256", sec,
24582458 generic_hash_speed_template);
24592459 if (mode > 300 && mode < 400) break;
2460− /* fall through */
2460+ fallthrough;
24612461 case 328:
24622462 test_hash_speed("streebog512", sec,
24632463 generic_hash_speed_template);
24642464 if (mode > 300 && mode < 400) break;
2465− /* fall through */
2465+ fallthrough;
24662466 case 399:
24672467 break;
24682468
@@ -2471,121 +2471,121 @@ static int do_test(const char *alg, u32 type, u32 mask, int m, u32 num_mb) · 2 unmodified lines
24712471 test_ahash_speed(alg, sec, generic_hash_speed_template);
24722472 break;
24732473 }
2474− /* fall through */
2474+ fallthrough;
24752475 case 401:
24762476 test_ahash_speed("md4", sec, generic_hash_speed_template);
24772477 if (mode > 400 && mode < 500) break;
2478− /* fall through */
2478+ fallthrough;
24792479 case 402:
24802480 test_ahash_speed("md5", sec, generic_hash_speed_template);
24812481 if (mode > 400 && mode < 500) break;
2482− /* fall through */
2482+ fallthrough;
24832483 case 403:
24842484 test_ahash_speed("sha1", sec, generic_hash_speed_template);
24852485 if (mode > 400 && mode < 500) break;
2486− /* fall through */
2486+ fallthrough;
24872487 case 404:
24882488 test_ahash_speed("sha256", sec, generic_hash_speed_template);
24892489 if (mode > 400 && mode < 500) break;
2490− /* fall through */
2490+ fallthrough;
24912491 case 405:
24922492 test_ahash_speed("sha384", sec, generic_hash_speed_template);
24932493 if (mode > 400 && mode < 500) break;
2494− /* fall through */
2494+ fallthrough;
24952495 case 406:
24962496 test_ahash_speed("sha512", sec, generic_hash_speed_template);
24972497 if (mode > 400 && mode < 500) break;
2498− /* fall through */
2498+ fallthrough;
24992499 case 407:
25002500 test_ahash_speed("wp256", sec, generic_hash_speed_template);
25012501 if (mode > 400 && mode < 500) break;
2502− /* fall through */
2502+ fallthrough;
25032503 case 408:
25042504 test_ahash_speed("wp384", sec, generic_hash_speed_template);
25052505 if (mode > 400 && mode < 500) break;
2506− /* fall through */
2506+ fallthrough;
25072507 case 409:
25082508 test_ahash_speed("wp512", sec, generic_hash_speed_template);
25092509 if (mode > 400 && mode < 500) break;
2510− /* fall through */
2510+ fallthrough;
25112511 case 410:
25122512 test_ahash_speed("tgr128", sec, generic_hash_speed_template);
25132513 if (mode > 400 && mode < 500) break;
2514− /* fall through */
2514+ fallthrough;
25152515 case 411:
25162516 test_ahash_speed("tgr160", sec, generic_hash_speed_template);
25172517 if (mode > 400 && mode < 500) break;
2518− /* fall through */
2518+ fallthrough;
25192519 case 412:
25202520 test_ahash_speed("tgr192", sec, generic_hash_speed_template);
25212521 if (mode > 400 && mode < 500) break;
2522− /* fall through */
2522+ fallthrough;
25232523 case 413:
25242524 test_ahash_speed("sha224", sec, generic_hash_speed_template);
25252525 if (mode > 400 && mode < 500) break;
2526− /* fall through */
2526+ fallthrough;
25272527 case 414:
25282528 test_ahash_speed("rmd128", sec, generic_hash_speed_template);
25292529 if (mode > 400 && mode < 500) break;
2530− /* fall through */
2530+ fallthrough;
25312531 case 415:
25322532 test_ahash_speed("rmd160", sec, generic_hash_speed_template);
25332533 if (mode > 400 && mode < 500) break;
2534− /* fall through */
2534+ fallthrough;
25352535 case 416:
25362536 test_ahash_speed("rmd256", sec, generic_hash_speed_template);
25372537 if (mode > 400 && mode < 500) break;
2538− /* fall through */
2538+ fallthrough;
25392539 case 417:
25402540 test_ahash_speed("rmd320", sec, generic_hash_speed_template);
25412541 if (mode > 400 && mode < 500) break;
2542− /* fall through */
2542+ fallthrough;
25432543 case 418:
25442544 test_ahash_speed("sha3-224", sec, generic_hash_speed_template);
25452545 if (mode > 400 && mode < 500) break;
2546− /* fall through */
2546+ fallthrough;
25472547 case 419:
25482548 test_ahash_speed("sha3-256", sec, generic_hash_speed_template);
25492549 if (mode > 400 && mode < 500) break;
2550− /* fall through */
2550+ fallthrough;
25512551 case 420:
25522552 test_ahash_speed("sha3-384", sec, generic_hash_speed_template);
25532553 if (mode > 400 && mode < 500) break;
2554− /* fall through */
2554+ fallthrough;
25552555 case 421:
25562556 test_ahash_speed("sha3-512", sec, generic_hash_speed_template);
25572557 if (mode > 400 && mode < 500) break;
2558− /* fall through */
2558+ fallthrough;
25592559 case 422:
25602560 test_mb_ahash_speed("sha1", sec, generic_hash_speed_template,
25612561 num_mb);
25622562 if (mode > 400 && mode < 500) break;
2563− /* fall through */
2563+ fallthrough;
25642564 case 423:
25652565 test_mb_ahash_speed("sha256", sec, generic_hash_speed_template,
25662566 num_mb);
25672567 if (mode > 400 && mode < 500) break;
2568− /* fall through */
2568+ fallthrough;
25692569 case 424:
25702570 test_mb_ahash_speed("sha512", sec, generic_hash_speed_template,
25712571 num_mb);
25722572 if (mode > 400 && mode < 500) break;
2573− /* fall through */
2573+ fallthrough;
25742574 case 425:
25752575 test_mb_ahash_speed("sm3", sec, generic_hash_speed_template,
25762576 num_mb);
25772577 if (mode > 400 && mode < 500) break;
2578− /* fall through */
2578+ fallthrough;
25792579 case 426:
25802580 test_mb_ahash_speed("streebog256", sec,
25812581 generic_hash_speed_template, num_mb);
25822582 if (mode > 400 && mode < 500) break;
2583− /* fall through */
2583+ fallthrough;
25842584 case 427:
25852585 test_mb_ahash_speed("streebog512", sec,
25862586 generic_hash_speed_template, num_mb);
25872587 if (mode > 400 && mode < 500) break;
2588− /* fall through */
2588+ fallthrough;
25892589 case 499:
25902590 break;
25912591
drivers/accessibility/braille/braille_console.c+1−1
@@ -290,7 +290,7 @@ static int vt_notifier_call(struct notifier_block *blk, · 289 unmodified lines
290290 break;
291291 case '\t':
292292 c = ' ';
293− /* Fallthrough */
293+ fallthrough;
294294 default:
295295 if (c < 32)
296296 /* Ignore other control sequences */
drivers/accessibility/speakup/Kconfig+9−4
@@ -42,6 +42,11 @@ config SPEAKUP · 41 unmodified lines
4242 one of the listed synthesizers, you should say n.
4343
4444 if SPEAKUP
45+
46+config SPEAKUP_SERIALIO
47+ def_bool y
48+ depends on ISA || COMPILE_TEST
49+
4550 config SPEAKUP_SYNTH_ACNTSA
4651 tristate "Accent SA synthesizer support"
4752 help
@@ -52,7 +57,7 @@ config SPEAKUP_SYNTH_ACNTSA · 4 unmodified lines
5257
5358 config SPEAKUP_SYNTH_ACNTPC
5459 tristate "Accent PC synthesizer support"
55− depends on ISA || COMPILE_TEST
60+ depends on SPEAKUP_SERIALIO
5661 help
5762 This is the Speakup driver for the accent pc
5863 synthesizer. You can say y to build it into the kernel,
@@ -104,7 +109,7 @@ config SPEAKUP_SYNTH_DECEXT · 45 unmodified lines
104109
105110 config SPEAKUP_SYNTH_DECPC
106111 depends on m
107− depends on ISA || COMPILE_TEST
112+ depends on SPEAKUP_SERIALIO
108113 tristate "DECtalk PC (big ISA card) synthesizer support"
109114 help
110115
@@ -127,7 +132,7 @@ config SPEAKUP_SYNTH_DECPC · 16 unmodified lines
127132
128133 config SPEAKUP_SYNTH_DTLK
129134 tristate "DoubleTalk PC synthesizer support"
130− depends on ISA || COMPILE_TEST
135+ depends on SPEAKUP_SERIALIO
131136 help
132137
133138 This is the Speakup driver for the internal DoubleTalk
@@ -138,7 +143,7 @@ config SPEAKUP_SYNTH_DTLK · 4 unmodified lines
138143
139144 config SPEAKUP_SYNTH_KEYPC
140145 tristate "Keynote Gold PC synthesizer support"
141− depends on ISA || COMPILE_TEST
146+ depends on SPEAKUP_SERIALIO
142147 help
143148
144149 This is the Speakup driver for the Keynote Gold
drivers/accessibility/speakup/Makefile+1−1
@@ -25,8 +25,8 @@ speakup-y := \ · 24 unmodified lines
2525 keyhelp.o \
2626 kobjects.o \
2727 selection.o \
28− serialio.o \
2928 spk_ttyio.o \
3029 synth.o \
3130 thread.o \
3231 varhandlers.o
32+speakup-$(CONFIG_SPEAKUP_SERIALIO) += serialio.o
drivers/accessibility/speakup/serialio.c+5−3
@@ -32,6 +32,7 @@ static void spk_serial_tiocmset(unsigned int set, unsigned int clear); · 31 unmodified lines
3232 static unsigned char spk_serial_in(void);
3333 static unsigned char spk_serial_in_nowait(void);
3434 static void spk_serial_flush_buffer(void);
35+static int spk_serial_wait_for_xmitr(struct spk_synth *in_synth);
3536
3637 struct spk_io_ops spk_serial_io_ops = {
3738 .synth_out = spk_serial_out,
@@ -40,6 +41,7 @@ struct spk_io_ops spk_serial_io_ops = { · 2 unmodified lines
4041 .synth_in = spk_serial_in,
4142 .synth_in_nowait = spk_serial_in_nowait,
4243 .flush_buffer = spk_serial_flush_buffer,
44+ .wait_for_xmitr = spk_serial_wait_for_xmitr,
4345 };
4446 EXPORT_SYMBOL_GPL(spk_serial_io_ops);
4547
@@ -211,7 +213,7 @@ void spk_stop_serial_interrupt(void) · 165 unmodified lines
211213 }
212214 EXPORT_SYMBOL_GPL(spk_stop_serial_interrupt);
213215
214−int spk_wait_for_xmitr(struct spk_synth *in_synth)
216+static int spk_serial_wait_for_xmitr(struct spk_synth *in_synth)
215217 {
216218 int tmout = SPK_XMITR_TIMEOUT;
217219
@@ -280,7 +282,7 @@ static void spk_serial_flush_buffer(void) · 62 unmodified lines
280282
281283 static int spk_serial_out(struct spk_synth *in_synth, const char ch)
282284 {
283− if (in_synth->alive && spk_wait_for_xmitr(in_synth)) {
285+ if (in_synth->alive && spk_serial_wait_for_xmitr(in_synth)) {
284286 outb_p(ch, speakup_info.port_tts);
285287 return 1;
286288 }
@@ -295,7 +297,7 @@ const char *spk_serial_synth_immediate(struct spk_synth *synth, · 8 unmodified lines
295297 while ((ch = *buff)) {
296298 if (ch == '\n')
297299 ch = synth->procspeech;
298− if (spk_wait_for_xmitr(synth))
300+ if (spk_serial_wait_for_xmitr(synth))
299301 outb(ch, speakup_info.port_tts);
300302 else
301303 return buff;
drivers/accessibility/speakup/spk_priv.h+0−1
@@ -34,7 +34,6 @@ · 33 unmodified lines
3434
3535 const struct old_serial_port *spk_serial_init(int index);
3636 void spk_stop_serial_interrupt(void);
37−int spk_wait_for_xmitr(struct spk_synth *in_synth);
3837 void spk_serial_release(void);
3938 void spk_ttyio_release(void);
4039 void spk_ttyio_register_ldisc(void);
drivers/accessibility/speakup/spk_ttyio.c+7−0
@@ -116,6 +116,7 @@ static void spk_ttyio_tiocmset(unsigned int set, unsigned int clear); · 115 unmodified lines
116116 static unsigned char spk_ttyio_in(void);
117117 static unsigned char spk_ttyio_in_nowait(void);
118118 static void spk_ttyio_flush_buffer(void);
119+static int spk_ttyio_wait_for_xmitr(struct spk_synth *in_synth);
119120
120121 struct spk_io_ops spk_ttyio_ops = {
121122 .synth_out = spk_ttyio_out,
@@ -125,6 +126,7 @@ struct spk_io_ops spk_ttyio_ops = { · 3 unmodified lines
125126 .synth_in = spk_ttyio_in,
126127 .synth_in_nowait = spk_ttyio_in_nowait,
127128 .flush_buffer = spk_ttyio_flush_buffer,
129+ .wait_for_xmitr = spk_ttyio_wait_for_xmitr,
128130 };
129131 EXPORT_SYMBOL_GPL(spk_ttyio_ops);
130132
@@ -286,6 +288,11 @@ static void spk_ttyio_tiocmset(unsigned int set, unsigned int clear) · 155 unmodified lines
286288 mutex_unlock(&speakup_tty_mutex);
287289 }
288290
291+static int spk_ttyio_wait_for_xmitr(struct spk_synth *in_synth)
292+{
293+ return 1;
294+}
295+
289296 static unsigned char ttyio_in(int timeout)
290297 {
291298 struct spk_ldisc_data *ldisc_data = speakup_tty->disc_data;
drivers/accessibility/speakup/spk_types.h+1−0
@@ -158,6 +158,7 @@ struct spk_io_ops { · 157 unmodified lines
158158 unsigned char (*synth_in)(void);
159159 unsigned char (*synth_in_nowait)(void);
160160 void (*flush_buffer)(void);
161+ int (*wait_for_xmitr)(struct spk_synth *synth);
161162 };
162163
163164 struct spk_synth {
drivers/accessibility/speakup/synth.c+1−1
@@ -159,7 +159,7 @@ int spk_synth_is_alive_restart(struct spk_synth *synth) · 158 unmodified lines
159159 {
160160 if (synth->alive)
161161 return 1;
162− if (spk_wait_for_xmitr(synth) > 0) {
162+ if (synth->io_ops->wait_for_xmitr(synth) > 0) {
163163 /* restart */
164164 synth->alive = 1;
165165 synth_printf("%s", synth->init);
drivers/acpi/acpi_apd.c+2−2
@@ -99,8 +99,8 @@ static int fch_misc_setup(struct apd_private_data *pdata) · 98 unmodified lines
9999 if (ret < 0)
100100 return -ENOENT;
101101
102− acpi_dev_get_property(adev, "is-rv", ACPI_TYPE_INTEGER, &obj);
103− clk_data->is_rv = obj->integer.value;
102+ if (!acpi_dev_get_property(adev, "is-rv", ACPI_TYPE_INTEGER, &obj))
103+ clk_data->is_rv = obj->integer.value;
104104
105105 list_for_each_entry(rentry, &resource_list, node) {
106106 clk_data->base = devm_ioremap(&adev->dev, rentry->res->start,
drivers/acpi/osl.c+19−4
@@ -350,7 +350,7 @@ void __iomem __ref · 349 unmodified lines
350350
351351 pg_off = round_down(phys, PAGE_SIZE);
352352 pg_sz = round_up(phys + size, PAGE_SIZE) - pg_off;
353− virt = acpi_map(pg_off, pg_sz);
353+ virt = acpi_map(phys, size);
354354 if (!virt) {
355355 mutex_unlock(&acpi_ioremap_lock);
356356 kfree(map);
@@ -358,7 +358,7 @@ void __iomem __ref · 1 unmodified line
358358 }
359359
360360 INIT_LIST_HEAD(&map->list);
361− map->virt = virt;
361+ map->virt = (void __iomem __force *)((unsigned long)virt & PAGE_MASK);
362362 map->phys = pg_off;
363363 map->size = pg_sz;
364364 map->track.refcount = 1;
@@ -1575,11 +1575,26 @@ static acpi_status acpi_deactivate_mem_region(acpi_handle handle, u32 level, · 1210 unmodified lines
15751575 acpi_status acpi_release_memory(acpi_handle handle, struct resource *res,
15761576 u32 level)
15771577 {
1578+ acpi_status status;
1579+
15781580 if (!(res->flags & IORESOURCE_MEM))
15791581 return AE_TYPE;
15801582
1581− return acpi_walk_namespace(ACPI_TYPE_REGION, handle, level,
1582− acpi_deactivate_mem_region, NULL, res, NULL);
1583+ status = acpi_walk_namespace(ACPI_TYPE_REGION, handle, level,
1584+ acpi_deactivate_mem_region, NULL,
1585+ res, NULL);
1586+ if (ACPI_FAILURE(status))
1587+ return status;
1588+
1589+ /*
1590+ * Wait for all of the mappings queued up for removal by
1591+ * acpi_deactivate_mem_region() to actually go away.
1592+ */
1593+ synchronize_rcu();
1594+ rcu_barrier();
1595+ flush_scheduled_work();
1596+
1597+ return AE_OK;
15831598 }
15841599 EXPORT_SYMBOL_GPL(acpi_release_memory);
15851600
drivers/ata/ahci.c+1−2
@@ -807,8 +807,7 @@ static int ahci_avn_hardreset(struct ata_link *link, unsigned int *class, · 806 unmodified lines
807807 (sstatus & 0xf) != 1)
808808 break;
809809
810− ata_link_printk(link, KERN_INFO, "avn bounce port%d\n",
811− port);
810+ ata_link_info(link, "avn bounce port%d\n", port);
812811
813812 pci_read_config_word(pdev, 0x92, &val);
814813 val &= ~(1 << port);
drivers/ata/ahci_brcm.c+1−1
@@ -470,7 +470,7 @@ static int brcm_ahci_probe(struct platform_device *pdev) · 469 unmodified lines
470470 switch (priv->version) {
471471 case BRCM_SATA_BCM7425:
472472 hpriv->flags |= AHCI_HFLAG_DELAY_ENGINE;
473− /* fall through */
473+ fallthrough;
474474 case BRCM_SATA_NSP:
475475 hpriv->flags |= AHCI_HFLAG_NO_NCQ;
476476 priv->quirks |= BRCM_AHCI_QUIRK_SKIP_PHY_ENABLE;
drivers/ata/libahci_platform.c+1−1
@@ -326,7 +326,7 @@ static int ahci_platform_get_phy(struct ahci_host_priv *hpriv, u32 port, · 325 unmodified lines
326326 node);
327327 break;
328328 }
329− /* fall through */
329+ fallthrough;
330330 case -ENODEV:
331331 /* continue normally */
332332 hpriv->phys[port] = NULL;
drivers/ata/libata-core.c+10−11
@@ -190,7 +190,7 @@ struct ata_link *ata_link_next(struct ata_link *link, struct ata_port *ap, · 189 unmodified lines
190190 case ATA_LITER_PMP_FIRST:
191191 if (sata_pmp_attached(ap))
192192 return ap->pmp_link;
193− /* fall through */
193+ fallthrough;
194194 case ATA_LITER_HOST_FIRST:
195195 return &ap->link;
196196 }
@@ -201,11 +201,11 @@ struct ata_link *ata_link_next(struct ata_link *link, struct ata_port *ap, · 4 unmodified lines
201201 case ATA_LITER_HOST_FIRST:
202202 if (sata_pmp_attached(ap))
203203 return ap->pmp_link;
204− /* fall through */
204+ fallthrough;
205205 case ATA_LITER_PMP_FIRST:
206206 if (unlikely(ap->slave_link))
207207 return ap->slave_link;
208− /* fall through */
208+ fallthrough;
209209 case ATA_LITER_EDGE:
210210 return NULL;
211211 }
@@ -523,7 +523,7 @@ int atapi_cmd_type(u8 opcode) · 311 unmodified lines
523523 case ATA_12:
524524 if (atapi_passthru16)
525525 return ATAPI_PASS_THRU;
526− /* fall thru */
526+ fallthrough;
527527 default:
528528 return ATAPI_MISC;
529529 }
@@ -1800,7 +1800,7 @@ retry: · 1270 unmodified lines
18001800 switch (class) {
18011801 case ATA_DEV_SEMB:
18021802 class = ATA_DEV_ATA; /* some hard drives report SEMB sig */
1803− /* fall through */
1803+ fallthrough;
18041804 case ATA_DEV_ATA:
18051805 case ATA_DEV_ZAC:
18061806 tf.command = ATA_CMD_ID_ATA;
@@ -2907,7 +2907,7 @@ int ata_bus_probe(struct ata_port *ap) · 1100 unmodified lines
29072907 case -ENODEV:
29082908 /* give it just one more chance */
29092909 tries[dev->devno] = min(tries[dev->devno], 1);
2910− /* fall through */
2910+ fallthrough;
29112911 case -EIO:
29122912 if (tries[dev->devno] == 1) {
29132913 /* This is the last chance, better to slow
@@ -3158,7 +3158,7 @@ int ata_down_xfermask_limit(struct ata_device *dev, unsigned int sel) · 244 unmodified lines
31583158
31593159 case ATA_DNXFER_FORCE_PIO0:
31603160 pio_mask &= 1;
3161− /* fall through */
3161+ fallthrough;
31623162 case ATA_DNXFER_FORCE_PIO:
31633163 mwdma_mask = 0;
31643164 udma_mask = 0;
@@ -3868,9 +3868,8 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = { · 703 unmodified lines
38683868 /* https://bugzilla.kernel.org/show_bug.cgi?id=15573 */
38693869 { "C300-CTFDDAC128MAG", "0001", ATA_HORKAGE_NONCQ, },
38703870
3871− /* Some Sandisk SSDs lock up hard with NCQ enabled. Reported on
3872− SD7SN6S256G and SD8SN8U256G */
3873− { "SanDisk SD[78]SN*G", NULL, ATA_HORKAGE_NONCQ, },
3871+ /* Sandisk SD7/8/9s lock up hard on large trims */
3872+ { "SanDisk SD[789]*", NULL, ATA_HORKAGE_MAX_TRIM_128M, },
38743873
38753874 /* devices which puke on READ_NATIVE_MAX */
38763875 { "HDS724040KLSA80", "KFAOA20N", ATA_HORKAGE_BROKEN_HPA, },
@@ -4694,7 +4693,7 @@ void ata_qc_complete(struct ata_queued_cmd *qc) · 817 unmodified lines
46944693 qc->tf.feature != SETFEATURES_RA_ON &&
46954694 qc->tf.feature != SETFEATURES_RA_OFF)
46964695 break;
4697− /* fall through */
4696+ fallthrough;
46984697 case ATA_CMD_INIT_DEV_PARAMS: /* CHS translation changed */
46994698 case ATA_CMD_SET_MULTI: /* multi_count changed */
47004699 /* revalidate device */
drivers/ata/libata-eh.c+3−3
@@ -1576,7 +1576,7 @@ static unsigned int ata_eh_analyze_tf(struct ata_queued_cmd *qc, · 1575 unmodified lines
15761576 case ATA_DEV_ZAC:
15771577 if (stat & ATA_SENSE)
15781578 ata_eh_request_sense(qc, qc->scsicmd);
1579− /* fall through */
1579+ fallthrough;
15801580 case ATA_DEV_ATA:
15811581 if (err & ATA_ICRC)
15821582 qc->err_mask |= AC_ERR_ATA_BUS;
@@ -3473,11 +3473,11 @@ static int ata_eh_handle_dev_fail(struct ata_device *dev, int err) · 1890 unmodified lines
34733473 case -ENODEV:
34743474 /* device missing or wrong IDENTIFY data, schedule probing */
34753475 ehc->i.probe_mask |= (1 << dev->devno);
3476− /* fall through */
3476+ fallthrough;
34773477 case -EINVAL:
34783478 /* give it just one more chance */
34793479 ehc->tries[dev->devno] = min(ehc->tries[dev->devno], 1);
3480− /* fall through */
3480+ fallthrough;
34813481 case -EIO:
34823482 if (ehc->tries[dev->devno] == 1) {
34833483 /* This is the last chance, better to slow
drivers/ata/libata-scsi.c+9−3
@@ -2080,6 +2080,7 @@ static unsigned int ata_scsiop_inq_89(struct ata_scsi_args *args, u8 *rbuf) · 2079 unmodified lines
20802080
20812081 static unsigned int ata_scsiop_inq_b0(struct ata_scsi_args *args, u8 *rbuf)
20822082 {
2083+ struct ata_device *dev = args->dev;
20832084 u16 min_io_sectors;
20842085
20852086 rbuf[1] = 0xb0;
@@ -2105,7 +2106,12 @@ static unsigned int ata_scsiop_inq_b0(struct ata_scsi_args *args, u8 *rbuf) · 19 unmodified lines
21052106 * with the unmap bit set.
21062107 */
21072108 if (ata_id_has_trim(args->id)) {
2108− put_unaligned_be64(65535 * ATA_MAX_TRIM_RNUM, &rbuf[36]);
2109+ u64 max_blocks = 65535 * ATA_MAX_TRIM_RNUM;
2110+
2111+ if (dev->horkage & ATA_HORKAGE_MAX_TRIM_128M)
2112+ max_blocks = 128 << (20 - SECTOR_SHIFT);
2113+
2114+ put_unaligned_be64(max_blocks, &rbuf[36]);
21092115 put_unaligned_be32(1, &rbuf[28]);
21102116 }
21112117
@@ -4162,7 +4168,7 @@ void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd) · 2050 unmodified lines
41624168 ata_scsi_rbuf_fill(&args, ata_scsiop_inq_b6);
41634169 break;
41644170 }
4165− /* Fallthrough */
4171+ fallthrough;
41664172 default:
41674173 ata_scsi_set_invalid_field(dev, cmd, 2, 0xff);
41684174 break;
@@ -4198,7 +4204,7 @@ void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd) · 29 unmodified lines
41984204 * turning this into a no-op.
41994205 */
42004206 case SYNCHRONIZE_CACHE:
4201− /* fall through */
4207+ fallthrough;
42024208
42034209 /* no-op's, complete with success */
42044210 case REZERO_UNIT:
drivers/ata/pata_atp867x.c+2−2
@@ -157,7 +157,7 @@ static int atp867x_get_active_clocks_shifted(struct ata_port *ap, · 156 unmodified lines
157157 default:
158158 printk(KERN_WARNING "ATP867X: active %dclk is invalid. "
159159 "Using 12clk.\n", clk);
160− /* fall through */
160+ fallthrough;
161161 case 9 ... 12:
162162 clocks = 7; /* 12 clk */
163163 break;
@@ -190,7 +190,7 @@ static int atp867x_get_recover_clocks_shifted(unsigned int clk) · 26 unmodified lines
190190 default:
191191 printk(KERN_WARNING "ATP867X: recover %dclk is invalid. "
192192 "Using default 12clk.\n", clk);
193− /* fall through */
193+ fallthrough;
194194 case 12: /* default 12 clk */
195195 clocks = 0;
196196 break;
drivers/ata/pata_serverworks.c+1−1
@@ -369,7 +369,7 @@ static int serverworks_fixup(struct pci_dev *pdev) · 368 unmodified lines
369369 break;
370370 case PCI_DEVICE_ID_SERVERWORKS_CSB5IDE:
371371 ata_pci_bmdma_clear_simplex(pdev);
372− /* fall through */
372+ fallthrough;
373373 case PCI_DEVICE_ID_SERVERWORKS_CSB6IDE:
374374 case PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2:
375375 rc = serverworks_fixup_csb(pdev);
drivers/ata/sata_mv.c+6−6
@@ -2010,7 +2010,7 @@ static void mv_rw_multi_errata_sata24(struct ata_queued_cmd *qc) · 2009 unmodified lines
20102010 break;
20112011 case ATA_CMD_WRITE_MULTI_FUA_EXT:
20122012 tf->flags &= ~ATA_TFLAG_FUA; /* ugh */
2013− /* fall through */
2013+ fallthrough;
20142014 case ATA_CMD_WRITE_MULTI_EXT:
20152015 tf->command = ATA_CMD_PIO_WRITE_EXT;
20162016 break;
@@ -2044,7 +2044,7 @@ static enum ata_completion_errors mv_qc_prep(struct ata_queued_cmd *qc) · 27 unmodified lines
20442044 case ATA_PROT_DMA:
20452045 if (tf->command == ATA_CMD_DSM)
20462046 return AC_ERR_OK;
2047− /* fall-thru */
2047+ fallthrough;
20482048 case ATA_PROT_NCQ:
20492049 break; /* continue below */
20502050 case ATA_PROT_PIO:
@@ -2296,7 +2296,7 @@ static unsigned int mv_qc_issue_fis(struct ata_queued_cmd *qc) · 245 unmodified lines
22962296 switch (qc->tf.protocol) {
22972297 case ATAPI_PROT_PIO:
22982298 pp->pp_flags |= MV_PP_FLAG_FAKE_ATA_BUSY;
2299− /* fall through */
2299+ fallthrough;
23002300 case ATAPI_PROT_NODATA:
23012301 ap->hsm_task_state = HSM_ST_FIRST;
23022302 break;
@@ -2347,7 +2347,7 @@ static unsigned int mv_qc_issue(struct ata_queued_cmd *qc) · 44 unmodified lines
23472347 return AC_ERR_OTHER;
23482348 break; /* use bmdma for this */
23492349 }
2350− /* fall thru */
2350+ fallthrough;
23512351 case ATA_PROT_NCQ:
23522352 mv_start_edma(ap, port_mmio, pp, qc->tf.protocol);
23532353 pp->req_idx = (pp->req_idx + 1) & MV_MAX_Q_DEPTH_MASK;
@@ -2376,7 +2376,7 @@ static unsigned int mv_qc_issue(struct ata_queued_cmd *qc) · 22 unmodified lines
23762376 ": attempting PIO w/multiple DRQ: "
23772377 "this may fail due to h/w errata\n");
23782378 }
2379− /* fall through */
2379+ fallthrough;
23802380 case ATA_PROT_NODATA:
23812381 case ATAPI_PROT_PIO:
23822382 case ATAPI_PROT_NODATA:
@@ -3864,7 +3864,7 @@ static int mv_chip_id(struct ata_host *host, unsigned int board_idx) · 1481 unmodified lines
38643864 " and avoid the final two gigabytes on"
38653865 " all RocketRAID BIOS initialized drives.\n");
38663866 }
3867− /* fall through */
3867+ fallthrough;
38683868 case chip_6042:
38693869 hpriv->ops = &mv6xxx_ops;
38703870 hp_flags |= MV_HP_GEN_IIE;
drivers/ata/sata_promise.c+4−4
@@ -637,7 +637,7 @@ static enum ata_completion_errors pdc_qc_prep(struct ata_queued_cmd *qc) · 636 unmodified lines
637637 switch (qc->tf.protocol) {
638638 case ATA_PROT_DMA:
639639 pdc_fill_sg(qc);
640− /*FALLTHROUGH*/
640+ fallthrough;
641641 case ATA_PROT_NODATA:
642642 i = pdc_pkt_header(&qc->tf, qc->ap->bmdma_prd_dma,
643643 qc->dev->devno, pp->pkt);
@@ -652,7 +652,7 @@ static enum ata_completion_errors pdc_qc_prep(struct ata_queued_cmd *qc) · 8 unmodified lines
652652 break;
653653 case ATAPI_PROT_DMA:
654654 pdc_fill_sg(qc);
655− /*FALLTHROUGH*/
655+ fallthrough;
656656 case ATAPI_PROT_NODATA:
657657 pdc_atapi_pkt(qc);
658658 break;
@@ -1022,11 +1022,11 @@ static unsigned int pdc_qc_issue(struct ata_queued_cmd *qc) · 363 unmodified lines
10221022 case ATAPI_PROT_NODATA:
10231023 if (qc->dev->flags & ATA_DFLAG_CDB_INTR)
10241024 break;
1025− /*FALLTHROUGH*/
1025+ fallthrough;
10261026 case ATA_PROT_NODATA:
10271027 if (qc->tf.flags & ATA_TFLAG_POLLING)
10281028 break;
1029− /*FALLTHROUGH*/
1029+ fallthrough;
10301030 case ATAPI_PROT_DMA:
10311031 case ATA_PROT_DMA:
10321032 pdc_packet_start(qc);
drivers/ata/sata_sx4.c+1−1
@@ -669,7 +669,7 @@ static unsigned int pdc20621_qc_issue(struct ata_queued_cmd *qc) · 668 unmodified lines
669669 case ATA_PROT_NODATA:
670670 if (qc->tf.flags & ATA_TFLAG_POLLING)
671671 break;
672− /*FALLTHROUGH*/
672+ fallthrough;
673673 case ATA_PROT_DMA:
674674 pdc20621_packet_start(qc);
675675 return 0;
drivers/atm/firestream.c+2−1
@@ -711,7 +711,7 @@ static void process_txdone_queue (struct fs_dev *dev, struct queue *q) · 710 unmodified lines
711711
712712 switch (STATUS_CODE (qe)) {
713713 case 0x01: /* This is for AAL0 where we put the chip in streaming mode */
714− /* Fall through */
714+ fallthrough;
715715 case 0x02:
716716 /* Process a real txdone entry. */
717717 tmp = qe->p0;
@@ -998,6 +998,7 @@ static int fs_open(struct atm_vcc *atm_vcc) · 280 unmodified lines
998998 error = make_rate (pcr, r, &tmc0, NULL);
999999 if (error) {
10001000 kfree(tc);
1001+ kfree(vcc);
10011002 return error;
10021003 }
10031004 }
drivers/atm/fore200e.c+8−8
@@ -376,33 +376,33 @@ fore200e_shutdown(struct fore200e* fore200e) · 375 unmodified lines
376376 case FORE200E_STATE_COMPLETE:
377377 kfree(fore200e->stats);
378378
379− /* fall through */
379+ fallthrough;
380380 case FORE200E_STATE_IRQ:
381381 free_irq(fore200e->irq, fore200e->atm_dev);
382382
383− /* fall through */
383+ fallthrough;
384384 case FORE200E_STATE_ALLOC_BUF:
385385 fore200e_free_rx_buf(fore200e);
386386
387− /* fall through */
387+ fallthrough;
388388 case FORE200E_STATE_INIT_BSQ:
389389 fore200e_uninit_bs_queue(fore200e);
390390
391− /* fall through */
391+ fallthrough;
392392 case FORE200E_STATE_INIT_RXQ:
393393 fore200e_dma_chunk_free(fore200e, &fore200e->host_rxq.status);
394394 fore200e_dma_chunk_free(fore200e, &fore200e->host_rxq.rpd);
395395
396− /* fall through */
396+ fallthrough;
397397 case FORE200E_STATE_INIT_TXQ:
398398 fore200e_dma_chunk_free(fore200e, &fore200e->host_txq.status);
399399 fore200e_dma_chunk_free(fore200e, &fore200e->host_txq.tpd);
400400
401− /* fall through */
401+ fallthrough;
402402 case FORE200E_STATE_INIT_CMDQ:
403403 fore200e_dma_chunk_free(fore200e, &fore200e->host_cmdq.status);
404404
405− /* fall through */
405+ fallthrough;
406406 case FORE200E_STATE_INITIALIZE:
407407 /* nothing to do for that state */
408408
@@ -415,7 +415,7 @@ fore200e_shutdown(struct fore200e* fore200e) · 6 unmodified lines
415415 case FORE200E_STATE_MAP:
416416 fore200e->bus->unmap(fore200e);
417417
418− /* fall through */
418+ fallthrough;
419419 case FORE200E_STATE_CONFIGURE:
420420 /* nothing to do for that state */
421421
drivers/atm/he.c+2−2
@@ -1944,14 +1944,14 @@ he_tasklet(unsigned long data) · 1943 unmodified lines
19441944 switch (type) {
19451945 case ITYPE_RBRQ_THRESH:
19461946 HPRINTK("rbrq%d threshold\n", group);
1947− /* fall through */
1947+ fallthrough;
19481948 case ITYPE_RBRQ_TIMER:
19491949 if (he_service_rbrq(he_dev, group))
19501950 he_service_rbpl(he_dev, group);
19511951 break;
19521952 case ITYPE_TBRQ_THRESH:
19531953 HPRINTK("tbrq%d threshold\n", group);
1954− /* fall through */
1954+ fallthrough;
19551955 case ITYPE_TPD_COMPLETE:
19561956 he_service_tbrq(he_dev, group);
19571957 break;
drivers/atm/idt77105.c+1−1
@@ -192,7 +192,7 @@ static int idt77105_ioctl(struct atm_dev *dev,unsigned int cmd,void __user *arg) · 191 unmodified lines
192192 switch (cmd) {
193193 case IDT77105_GETSTATZ:
194194 if (!capable(CAP_NET_ADMIN)) return -EPERM;
195− /* fall through */
195+ fallthrough;
196196 case IDT77105_GETSTAT:
197197 return fetch_stats(dev, arg, cmd == IDT77105_GETSTATZ);
198198 case ATM_SETLOOP:
drivers/atm/lanai.c+1−1
@@ -2019,7 +2019,7 @@ static int lanai_normalize_ci(struct lanai_dev *lanai, · 2018 unmodified lines
20192019 switch (*vpip) {
20202020 case ATM_VPI_ANY:
20212021 *vpip = 0;
2022− /* FALLTHROUGH */
2022+ fallthrough;
20232023 case 0:
20242024 break;
20252025 default:
drivers/atm/zatm.c+1−1
@@ -1447,7 +1447,7 @@ static int zatm_ioctl(struct atm_dev *dev,unsigned int cmd,void __user *arg) · 1446 unmodified lines
14471447 switch (cmd) {
14481448 case ZATM_GETPOOLZ:
14491449 if (!capable(CAP_NET_ADMIN)) return -EPERM;
1450− /* fall through */
1450+ fallthrough;
14511451 case ZATM_GETPOOL:
14521452 {
14531453 struct zatm_pool_info info;
drivers/auxdisplay/arm-charlcd.c+1−1
@@ -2,7 +2,7 @@ · 1 unmodified line
22 /*
33 * Driver for the on-board character LCD found on some ARM reference boards
44 * This is basically an Hitachi HD44780 LCD with a custom IP block to drive it
5− * http://en.wikipedia.org/wiki/HD44780_Character_LCD
5+ * https://en.wikipedia.org/wiki/HD44780_Character_LCD
66 * Currently it will just display the text "ARM Linux" and the linux version
77 *
88 * Author: Linus Walleij <triad@df.lth.se>
drivers/auxdisplay/panel.c+3−3
@@ -1365,7 +1365,7 @@ static void panel_process_inputs(void) · 1364 unmodified lines
13651365 break;
13661366 input->rise_timer = 0;
13671367 input->state = INPUT_ST_RISING;
1368− /* fall through */
1368+ fallthrough;
13691369 case INPUT_ST_RISING:
13701370 if ((phys_curr & input->mask) != input->value) {
13711371 input->state = INPUT_ST_LOW;
@@ -1378,11 +1378,11 @@ static void panel_process_inputs(void) · 6 unmodified lines
13781378 }
13791379 input->high_timer = 0;
13801380 input->state = INPUT_ST_HIGH;
1381− /* fall through */
1381+ fallthrough;
13821382 case INPUT_ST_HIGH:
13831383 if (input_state_high(input))
13841384 break;
1385− /* fall through */
1385+ fallthrough;
13861386 case INPUT_ST_FALLING:
13871387 input_state_falling(input);
13881388 }
drivers/base/core.c+8−4
@@ -4264,9 +4264,9 @@ static inline bool fwnode_is_primary(struct fwnode_handle *fwnode) · 4263 unmodified lines
42644264 */
42654265 void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode)
42664266 {
4267− if (fwnode) {
4268− struct fwnode_handle *fn = dev->fwnode;
4267+ struct fwnode_handle *fn = dev->fwnode;
42694268
4269+ if (fwnode) {
42704270 if (fwnode_is_primary(fn))
42714271 fn = fn->secondary;
42724272
@@ -4276,8 +4276,12 @@ void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode) · 3 unmodified lines
42764276 }
42774277 dev->fwnode = fwnode;
42784278 } else {
4279− dev->fwnode = fwnode_is_primary(dev->fwnode) ?
4280− dev->fwnode->secondary : NULL;
4279+ if (fwnode_is_primary(fn)) {
4280+ dev->fwnode = fn->secondary;
4281+ fn->secondary = NULL;
4282+ } else {
4283+ dev->fwnode = NULL;
4284+ }
42814285 }
42824286 }
42834287 EXPORT_SYMBOL_GPL(set_primary_fwnode);
drivers/base/firmware_loader/fallback.c+2−2
@@ -289,10 +289,10 @@ static ssize_t firmware_loading_store(struct device *dev, · 288 unmodified lines
289289 }
290290 break;
291291 }
292− /* fallthrough */
292+ fallthrough;
293293 default:
294294 dev_err(dev, "%s: unexpected value (%d)\n", __func__, loading);
295− /* fallthrough */
295+ fallthrough;
296296 case -1:
297297 fw_load_abort(fw_sysfs);
298298 break;
drivers/base/power/main.c+10−6
@@ -1606,13 +1606,17 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async) · 1605 unmodified lines
16061606 }
16071607
16081608 /*
1609− * If a device configured to wake up the system from sleep states
1610− * has been suspended at run time and there's a resume request pending
1611− * for it, this is equivalent to the device signaling wakeup, so the
1612− * system suspend operation should be aborted.
1609+ * Wait for possible runtime PM transitions of the device in progress
1610+ * to complete and if there's a runtime resume request pending for it,
1611+ * resume it before proceeding with invoking the system-wide suspend
1612+ * callbacks for it.
1613+ *
1614+ * If the system-wide suspend callbacks below change the configuration
1615+ * of the device, they must disable runtime PM for it or otherwise
1616+ * ensure that its runtime-resume callbacks will not be confused by that
1617+ * change in case they are invoked going forward.
16131618 */
1614− if (pm_runtime_barrier(dev) && device_may_wakeup(dev))
1615− pm_wakeup_event(dev, 0);
1619+ pm_runtime_barrier(dev);
16161620
16171621 if (pm_wakeup_pending()) {
16181622 dev->power.direct_complete = false;
drivers/block/aoe/aoecmd.c+1−1
@@ -1135,7 +1135,7 @@ noskb: if (buf) · 1134 unmodified lines
11351135 break;
11361136 }
11371137 bvcpy(skb, f->buf->bio, f->iter, n);
1138− /* fall through */
1138+ fallthrough;
11391139 case ATA_CMD_PIO_WRITE:
11401140 case ATA_CMD_PIO_WRITE_EXT:
11411141 spin_lock_irq(&d->lock);
drivers/block/ataflop.c+1−1
@@ -1726,7 +1726,7 @@ static int fd_locked_ioctl(struct block_device *bdev, fmode_t mode, · 1725 unmodified lines
17261726 /* MSch: invalidate default_params */
17271727 default_params[drive].blocks = 0;
17281728 set_capacity(floppy->disk, MAX_DISK_SIZE * 2);
1729− /* Fall through */
1729+ fallthrough;
17301730 case FDFMTEND:
17311731 case FDFLUSH:
17321732 /* invalidate the buffer track to force a reread */
drivers/block/drbd/drbd_int.h+1−1
@@ -1733,7 +1733,7 @@ static inline void __drbd_chk_io_error_(struct drbd_device *device, · 1732 unmodified lines
17331733 _drbd_set_state(_NS(device, disk, D_INCONSISTENT), CS_HARD, NULL);
17341734 break;
17351735 }
1736− /* fall through - for DRBD_META_IO_ERROR or DRBD_FORCE_DETACH */
1736+ fallthrough; /* for DRBD_META_IO_ERROR or DRBD_FORCE_DETACH */
17371737 case EP_DETACH:
17381738 case EP_CALL_HELPER:
17391739 /* Remember whether we saw a READ or WRITE error.
drivers/block/drbd/drbd_main.c+1−1
@@ -430,7 +430,7 @@ int drbd_thread_start(struct drbd_thread *thi) · 429 unmodified lines
430430 thi->t_state = RESTARTING;
431431 drbd_info(resource, "Restarting %s thread (from %s [%d])\n",
432432 thi->name, current->comm, current->pid);
433− /* fall through */
433+ fallthrough;
434434 case RUNNING:
435435 case RESTARTING:
436436 default:
drivers/block/drbd/drbd_nl.c+1−1
@@ -3883,7 +3883,7 @@ static int nla_put_status_info(struct sk_buff *skb, struct drbd_device *device, · 3882 unmodified lines
38833883 if (nla_put_u32(skb, T_helper_exit_code,
38843884 sib->helper_exit_code))
38853885 goto nla_put_failure;
3886− /* fall through */
3886+ fallthrough;
38873887 case SIB_HELPER_PRE:
38883888 if (nla_put_string(skb, T_helper, sib->helper_name))
38893889 goto nla_put_failure;
drivers/block/drbd/drbd_receiver.c+6−6
@@ -1797,7 +1797,7 @@ static int receive_Barrier(struct drbd_connection *connection, struct packet_inf · 1796 unmodified lines
17971797 break;
17981798 else
17991799 drbd_warn(connection, "Allocation of an epoch failed, slowing down\n");
1800− /* Fall through */
1800+ fallthrough;
18011801
18021802 case WO_BDEV_FLUSH:
18031803 case WO_DRAIN_IO:
@@ -2917,7 +2917,7 @@ static int receive_DataRequest(struct drbd_connection *connection, struct packet · 1113 unmodified lines
29172917 then we would do something smarter here than reading
29182918 the block... */
29192919 peer_req->flags |= EE_RS_THIN_REQ;
2920− /* fall through */
2920+ fallthrough;
29212921 case P_RS_DATA_REQUEST:
29222922 peer_req->w.cb = w_e_end_rsdata_req;
29232923 fault_type = DRBD_FAULT_RS_RD;
@@ -3083,7 +3083,7 @@ static int drbd_asb_recover_0p(struct drbd_peer_device *peer_device) __must_hold · 159 unmodified lines
30833083 rv = 1;
30843084 break;
30853085 }
3086− /* Else fall through - to one of the other strategies... */
3086+ fallthrough; /* to one of the other strategies */
30873087 case ASB_DISCARD_OLDER_PRI:
30883088 if (self == 0 && peer == 1) {
30893089 rv = 1;
@@ -3096,7 +3096,7 @@ static int drbd_asb_recover_0p(struct drbd_peer_device *peer_device) __must_hold · 6 unmodified lines
30963096 /* Else fall through to one of the other strategies... */
30973097 drbd_warn(device, "Discard younger/older primary did not find a decision\n"
30983098 "Using discard-least-changes instead\n");
3099− /* fall through */
3099+ fallthrough;
31003100 case ASB_DISCARD_ZERO_CHG:
31013101 if (ch_peer == 0 && ch_self == 0) {
31023102 rv = test_bit(RESOLVE_CONFLICTS, &peer_device->connection->flags)
@@ -3108,7 +3108,7 @@ static int drbd_asb_recover_0p(struct drbd_peer_device *peer_device) __must_hold · 5 unmodified lines
31083108 }
31093109 if (after_sb_0p == ASB_DISCARD_ZERO_CHG)
31103110 break;
3111− /* else, fall through */
3111+ fallthrough;
31123112 case ASB_DISCARD_LEAST_CHG:
31133113 if (ch_self < ch_peer)
31143114 rv = -1;
@@ -3608,7 +3608,7 @@ static enum drbd_conns drbd_sync_handshake(struct drbd_peer_device *peer_device, · 493 unmodified lines
36083608 switch (rr_conflict) {
36093609 case ASB_CALL_HELPER:
36103610 drbd_khelper(device, "pri-lost");
3611− /* fall through */
3611+ fallthrough;
36123612 case ASB_DISCONNECT:
36133613 drbd_err(device, "I shall become SyncTarget, but I am primary!\n");
36143614 return C_MASK;
drivers/block/drbd/drbd_req.c+2−2
@@ -611,7 +611,7 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what, · 610 unmodified lines
611611 drbd_set_out_of_sync(device, req->i.sector, req->i.size);
612612 drbd_report_io_error(device, req);
613613 __drbd_chk_io_error(device, DRBD_READ_ERROR);
614− /* fall through. */
614+ fallthrough;
615615 case READ_AHEAD_COMPLETED_WITH_ERROR:
616616 /* it is legal to fail read-ahead, no __drbd_chk_io_error in that case. */
617617 mod_rq_state(req, m, RQ_LOCAL_PENDING, RQ_LOCAL_COMPLETED);
@@ -836,7 +836,7 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what, · 218 unmodified lines
836836 } /* else: FIXME can this happen? */
837837 break;
838838 }
839− /* else, fall through - to BARRIER_ACKED */
839+ fallthrough; /* to BARRIER_ACKED */
840840
841841 case BARRIER_ACKED:
842842 /* barrier ack for READ requests does not make sense */
drivers/block/floppy.c+2−2
@@ -1680,7 +1680,7 @@ static void recal_interrupt(void) · 1679 unmodified lines
16801680 clear_bit(FD_DISK_NEWCHANGE_BIT,
16811681 &drive_state[current_drive].flags);
16821682 drive_state[current_drive].select_date = jiffies;
1683− /* fall through */
1683+ fallthrough;
16841684 default:
16851685 debugt(__func__, "default");
16861686 /* Recalibrate moves the head by at
@@ -3592,7 +3592,7 @@ static int fd_locked_ioctl(struct block_device *bdev, fmode_t mode, unsigned int · 1905 unmodified lines
35923592 if (poll_drive(true, FD_RAW_NEED_DISK) == -EINTR)
35933593 return -EINTR;
35943594 process_fd_request();
3595− /* fall through */
3595+ fallthrough;
35963596 case FDGETDRVSTAT:
35973597 outparam = &drive_state[drive];
35983598 break;
drivers/block/loop.c+22−19
@@ -878,6 +878,7 @@ static void loop_config_discard(struct loop_device *lo) · 877 unmodified lines
878878 struct file *file = lo->lo_backing_file;
879879 struct inode *inode = file->f_mapping->host;
880880 struct request_queue *q = lo->lo_queue;
881+ u32 granularity, max_discard_sectors;
881882
882883 /*
883884 * If the backing device is a block device, mirror its zeroing
@@ -890,11 +891,10 @@ static void loop_config_discard(struct loop_device *lo) · 6 unmodified lines
890891 struct request_queue *backingq;
891892
892893 backingq = bdev_get_queue(inode->i_bdev);
893− blk_queue_max_discard_sectors(q,
894− backingq->limits.max_write_zeroes_sectors);
895894
896− blk_queue_max_write_zeroes_sectors(q,
897− backingq->limits.max_write_zeroes_sectors);
895+ max_discard_sectors = backingq->limits.max_write_zeroes_sectors;
896+ granularity = backingq->limits.discard_granularity ?:
897+ queue_physical_block_size(backingq);
898898
899899 /*
900900 * We use punch hole to reclaim the free space used by the
@@ -903,23 +903,26 @@ static void loop_config_discard(struct loop_device *lo) · 2 unmodified lines
903903 * useful information.
904904 */
905905 } else if (!file->f_op->fallocate || lo->lo_encrypt_key_size) {
906− q->limits.discard_granularity = 0;
907− q->limits.discard_alignment = 0;
908− blk_queue_max_discard_sectors(q, 0);
909− blk_queue_max_write_zeroes_sectors(q, 0);
906+ max_discard_sectors = 0;
907+ granularity = 0;
910908
911909 } else {
912− q->limits.discard_granularity = inode->i_sb->s_blocksize;
913− q->limits.discard_alignment = 0;
914−
915− blk_queue_max_discard_sectors(q, UINT_MAX >> 9);
916− blk_queue_max_write_zeroes_sectors(q, UINT_MAX >> 9);
910+ max_discard_sectors = UINT_MAX >> 9;
911+ granularity = inode->i_sb->s_blocksize;
917912 }
918913
919− if (q->limits.max_write_zeroes_sectors)
914+ if (max_discard_sectors) {
915+ q->limits.discard_granularity = granularity;
916+ blk_queue_max_discard_sectors(q, max_discard_sectors);
917+ blk_queue_max_write_zeroes_sectors(q, max_discard_sectors);
920918 blk_queue_flag_set(QUEUE_FLAG_DISCARD, q);
921− else
919+ } else {
920+ q->limits.discard_granularity = 0;
921+ blk_queue_max_discard_sectors(q, 0);
922+ blk_queue_max_write_zeroes_sectors(q, 0);
922923 blk_queue_flag_clear(QUEUE_FLAG_DISCARD, q);
924+ }
925+ q->limits.discard_alignment = 0;
923926 }
924927
925928 static void loop_unprepare_queue(struct loop_device *lo)
@@ -1111,8 +1114,6 @@ static int loop_configure(struct loop_device *lo, fmode_t mode, · 185 unmodified lines
11111114 mapping = file->f_mapping;
11121115 inode = mapping->host;
11131116
1114− size = get_loop_size(lo, file);
1115−
11161117 if ((config->info.lo_flags & ~LOOP_CONFIGURE_SETTABLE_FLAGS) != 0) {
11171118 error = -EINVAL;
11181119 goto out_unlock;
@@ -1162,6 +1163,8 @@ static int loop_configure(struct loop_device *lo, fmode_t mode, · 43 unmodified lines
11621163 loop_update_rotational(lo);
11631164 loop_update_dio(lo);
11641165 loop_sysfs_init(lo);
1166+
1167+ size = get_loop_size(lo, file);
11651168 loop_set_size(lo, size);
11661169
11671170 set_blocksize(bdev, S_ISBLK(inode->i_mode) ?
@@ -1719,7 +1722,7 @@ static int lo_ioctl(struct block_device *bdev, fmode_t mode, · 551 unmodified lines
17191722 case LOOP_SET_BLOCK_SIZE:
17201723 if (!(mode & FMODE_WRITE) && !capable(CAP_SYS_ADMIN))
17211724 return -EPERM;
1722− /* Fall through */
1725+ fallthrough;
17231726 default:
17241727 err = lo_simple_ioctl(lo, cmd, arg);
17251728 break;
@@ -1867,7 +1870,7 @@ static int lo_compat_ioctl(struct block_device *bdev, fmode_t mode, · 141 unmodified lines
18671870 case LOOP_SET_STATUS64:
18681871 case LOOP_CONFIGURE:
18691872 arg = (unsigned long) compat_ptr(arg);
1870− /* fall through */
1873+ fallthrough;
18711874 case LOOP_SET_FD:
18721875 case LOOP_CHANGE_FD:
18731876 case LOOP_SET_BLOCK_SIZE:
drivers/block/nbd.c+2−0
@@ -1363,6 +1363,8 @@ static void nbd_set_cmd_timeout(struct nbd_device *nbd, u64 timeout) · 1362 unmodified lines
13631363 nbd->tag_set.timeout = timeout * HZ;
13641364 if (timeout)
13651365 blk_queue_rq_timeout(nbd->disk->queue, timeout * HZ);
1366+ else
1367+ blk_queue_rq_timeout(nbd->disk->queue, 30 * HZ);
13661368 }
13671369
13681370 /* Must be called with config_lock held */
drivers/block/null_blk_main.c+1−1
@@ -1147,7 +1147,7 @@ static int null_handle_rq(struct nullb_cmd *cmd) · 1146 unmodified lines
11471147 len = bvec.bv_len;
11481148 err = null_transfer(nullb, bvec.bv_page, len, bvec.bv_offset,
11491149 op_is_write(req_op(rq)), sector,
1150− req_op(rq) & REQ_FUA);
1150+ rq->cmd_flags & REQ_FUA);
11511151 if (err) {
11521152 spin_unlock_irq(&nullb->lock);
11531153 return err;
drivers/block/paride/pd.c+2−2
@@ -440,7 +440,7 @@ static void run_fsm(void) · 439 unmodified lines
440440 pd_claimed = 1;
441441 if (!pi_schedule_claimed(pi_current, run_fsm))
442442 return;
443− /* fall through */
443+ fallthrough;
444444 case 1:
445445 pd_claimed = 2;
446446 pi_current->proto->connect(pi_current);
@@ -465,7 +465,7 @@ static void run_fsm(void) · 18 unmodified lines
465465 if (stop)
466466 return;
467467 }
468− /* fall through */
468+ fallthrough;
469469 case Hold:
470470 schedule_fsm();
471471 return;
drivers/block/pktcdvd.c+1−1
@@ -2641,7 +2641,7 @@ static int pkt_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, · 2640 unmodified lines
26412641 */
26422642 if (pd->refcnt == 1)
26432643 pkt_lock_door(pd, 0);
2644− /* fall through */
2644+ fallthrough;
26452645 /*
26462646 * forward selected CDROM ioctls to CD-ROM, for UDF
26472647 */
drivers/block/rbd.c+4−4
@@ -3293,7 +3293,7 @@ again: · 3292 unmodified lines
32933293 case __RBD_OBJ_COPYUP_OBJECT_MAPS:
32943294 if (!pending_result_dec(&obj_req->pending, result))
32953295 return false;
3296− /* fall through */
3296+ fallthrough;
32973297 case RBD_OBJ_COPYUP_OBJECT_MAPS:
32983298 if (*result) {
32993299 rbd_warn(rbd_dev, "snap object map update failed: %d",
@@ -3312,7 +3312,7 @@ again: · 12 unmodified lines
33123312 case __RBD_OBJ_COPYUP_WRITE_OBJECT:
33133313 if (!pending_result_dec(&obj_req->pending, result))
33143314 return false;
3315− /* fall through */
3315+ fallthrough;
33163316 case RBD_OBJ_COPYUP_WRITE_OBJECT:
33173317 return true;
33183318 default:
@@ -3399,7 +3399,7 @@ again: · 80 unmodified lines
33993399 case __RBD_OBJ_WRITE_COPYUP:
34003400 if (!rbd_obj_advance_copyup(obj_req, result))
34013401 return false;
3402− /* fall through */
3402+ fallthrough;
34033403 case RBD_OBJ_WRITE_COPYUP:
34043404 if (*result) {
34053405 rbd_warn(rbd_dev, "copyup failed: %d", *result);
@@ -3592,7 +3592,7 @@ again: · 186 unmodified lines
35923592 case __RBD_IMG_OBJECT_REQUESTS:
35933593 if (!pending_result_dec(&img_req->pending, result))
35943594 return false;
3595− /* fall through */
3595+ fallthrough;
35963596 case RBD_IMG_OBJECT_REQUESTS:
35973597 return true;
35983598 default:
drivers/block/rnbd/rnbd-srv.c+2−1
@@ -148,7 +148,8 @@ static int process_rdma(struct rtrs_srv *sess, · 147 unmodified lines
148148 /* Generate bio with pages pointing to the rdma buffer */
149149 bio = rnbd_bio_map_kern(data, sess_dev->rnbd_dev->ibd_bio_set, datalen, GFP_KERNEL);
150150 if (IS_ERR(bio)) {
151− rnbd_srv_err(sess_dev, "Failed to generate bio, err: %ld\n", PTR_ERR(bio));
151+ err = PTR_ERR(bio);
152+ rnbd_srv_err(sess_dev, "Failed to generate bio, err: %d\n", err);
152153 goto sess_dev_put;
153154 }
154155
drivers/block/rsxx/core.c+1−1
@@ -425,7 +425,7 @@ static void card_state_change(struct rsxx_cardinfo *card, · 424 unmodified lines
425425 * Fall through so the DMA devices can be attached and
426426 * the user can attempt to pull off their data.
427427 */
428− /* fall through */
428+ fallthrough;
429429 case CARD_STATE_GOOD:
430430 st = rsxx_get_card_size8(card, &card->size8);
431431 if (st)
drivers/block/skd_main.c+1−1
@@ -1436,7 +1436,7 @@ static void skd_resolve_req_exception(struct skd_device *skdev, · 1435 unmodified lines
14361436 blk_mq_requeue_request(req, true);
14371437 break;
14381438 }
1439− /* fall through */
1439+ fallthrough;
14401440
14411441 case SKD_CHECK_STATUS_REPORT_ERROR:
14421442 default:
drivers/block/virtio_blk.c+23−8
@@ -126,16 +126,31 @@ static int virtblk_setup_discard_write_zeroes(struct request *req, bool unmap) · 125 unmodified lines
126126 if (!range)
127127 return -ENOMEM;
128128
129− __rq_for_each_bio(bio, req) {
130− u64 sector = bio->bi_iter.bi_sector;
131− u32 num_sectors = bio->bi_iter.bi_size >> SECTOR_SHIFT;
132−
133− range[n].flags = cpu_to_le32(flags);
134− range[n].num_sectors = cpu_to_le32(num_sectors);
135− range[n].sector = cpu_to_le64(sector);
136− n++;
129+ /*
130+ * Single max discard segment means multi-range discard isn't
131+ * supported, and block layer only runs contiguity merge like
132+ * normal RW request. So we can't reply on bio for retrieving
133+ * each range info.
134+ */
135+ if (queue_max_discard_segments(req->q) == 1) {
136+ range[0].flags = cpu_to_le32(flags);
137+ range[0].num_sectors = cpu_to_le32(blk_rq_sectors(req));
138+ range[0].sector = cpu_to_le64(blk_rq_pos(req));
139+ n = 1;
140+ } else {
141+ __rq_for_each_bio(bio, req) {
142+ u64 sector = bio->bi_iter.bi_sector;
143+ u32 num_sectors = bio->bi_iter.bi_size >> SECTOR_SHIFT;
144+
145+ range[n].flags = cpu_to_le32(flags);
146+ range[n].num_sectors = cpu_to_le32(num_sectors);
147+ range[n].sector = cpu_to_le64(sector);
148+ n++;
149+ }
137150 }
138151
152+ WARN_ON_ONCE(n != segments);
153+
139154 req->special_vec.bv_page = virt_to_page(range);
140155 req->special_vec.bv_offset = offset_in_page(range);
141156 req->special_vec.bv_len = sizeof(*range) * segments;
drivers/block/xen-blkback/blkback.c+1−1
@@ -1260,7 +1260,7 @@ static int dispatch_rw_block_io(struct xen_blkif_ring *ring, · 1259 unmodified lines
12601260 break;
12611261 case BLKIF_OP_WRITE_BARRIER:
12621262 drain = true;
1263− /* fall through */
1263+ fallthrough;
12641264 case BLKIF_OP_FLUSH_DISKCACHE:
12651265 ring->st_f_req++;
12661266 operation = REQ_OP_WRITE;
drivers/block/xen-blkback/xenbus.c+1−1
@@ -843,7 +843,7 @@ static void frontend_changed(struct xenbus_device *dev, · 842 unmodified lines
843843 xenbus_switch_state(dev, XenbusStateClosed);
844844 if (xenbus_dev_is_online(dev))
845845 break;
846− /* fall through */
846+ fallthrough;
847847 /* if not online */
848848 case XenbusStateUnknown:
849849 /* implies xen_blkif_disconnect() via xen_blkbk_remove() */
drivers/block/xen-blkfront.c+2−3
@@ -1403,7 +1403,6 @@ static enum blk_req_status blkif_rsp_to_req_status(int rsp) · 1402 unmodified lines
14031403 case BLKIF_RSP_EOPNOTSUPP:
14041404 return REQ_EOPNOTSUPP;
14051405 case BLKIF_RSP_ERROR:
1406− /* Fallthrough. */
14071406 default:
14081407 return REQ_ERROR;
14091408 }
@@ -1643,7 +1642,7 @@ static irqreturn_t blkif_interrupt(int irq, void *dev_id) · 233 unmodified lines
16431642 info->feature_flush = 0;
16441643 xlvbd_flush(info);
16451644 }
1646− /* fall through */
1645+ fallthrough;
16471646 case BLKIF_OP_READ:
16481647 case BLKIF_OP_WRITE:
16491648 if (unlikely(bret->status != BLKIF_RSP_OKAY))
@@ -2484,7 +2483,7 @@ static void blkback_changed(struct xenbus_device *dev, · 834 unmodified lines
24842483 case XenbusStateClosed:
24852484 if (dev->state == XenbusStateClosed)
24862485 break;
2487− /* fall through */
2486+ fallthrough;
24882487 case XenbusStateClosing:
24892488 if (info)
24902489 blkfront_closing(info);
drivers/bus/ti-sysc.c+1−1
@@ -1849,7 +1849,7 @@ static int sysc_clockdomain_init(struct sysc *ddata) · 1848 unmodified lines
18491849 switch (ddata->nr_clocks) {
18501850 case 2:
18511851 ick = ddata->clocks[SYSC_ICK];
1852− /* fallthrough */
1852+ fallthrough;
18531853 case 1:
18541854 fck = ddata->clocks[SYSC_FCK];
18551855 break;
drivers/char/agp/ali-agp.c+1−1
@@ -357,7 +357,7 @@ found: · 356 unmodified lines
357357 default:
358358 break;
359359 }
360− /*FALLTHROUGH*/
360+ fallthrough;
361361 default:
362362 bridge->driver = &ali_generic_bridge;
363363 }
drivers/char/hw_random/ingenic-rng.c+2−7
@@ -92,8 +92,7 @@ static int ingenic_rng_probe(struct platform_device *pdev) · 91 unmodified lines
9292 priv->base = devm_platform_ioremap_resource(pdev, 0);
9393 if (IS_ERR(priv->base)) {
9494 pr_err("%s: Failed to map RNG registers\n", __func__);
95− ret = PTR_ERR(priv->base);
96− goto err_free_rng;
95+ return PTR_ERR(priv->base);
9796 }
9897
9998 priv->version = (enum ingenic_rng_version)of_device_get_match_data(&pdev->dev);
@@ -106,17 +105,13 @@ static int ingenic_rng_probe(struct platform_device *pdev) · 6 unmodified lines
106105 ret = hwrng_register(&priv->rng);
107106 if (ret) {
108107 dev_err(&pdev->dev, "Failed to register hwrng\n");
109− goto err_free_rng;
108+ return ret;
110109 }
111110
112111 platform_set_drvdata(pdev, priv);
113112
114113 dev_info(&pdev->dev, "Ingenic RNG driver registered\n");
115114 return 0;
116−
117−err_free_rng:
118− kfree(priv);
119− return ret;
120115 }
121116
122117 static int ingenic_rng_remove(struct platform_device *pdev)
drivers/char/ipmi/kcs_bmc.c+1−1
@@ -99,7 +99,7 @@ static void kcs_bmc_handle_data(struct kcs_bmc *kcs_bmc) · 98 unmodified lines
9999 switch (kcs_bmc->phase) {
100100 case KCS_PHASE_WRITE_START:
101101 kcs_bmc->phase = KCS_PHASE_WRITE_DATA;
102− /* fall through */
102+ fallthrough;
103103
104104 case KCS_PHASE_WRITE_DATA:
105105 if (kcs_bmc->data_in_idx < KCS_MSG_BUFSIZ) {
drivers/char/lp.c+2−2
@@ -734,7 +734,7 @@ static long lp_ioctl(struct file *file, unsigned int cmd, · 733 unmodified lines
734734 ret = lp_set_timeout32(minor, (void __user *)arg);
735735 break;
736736 }
737− /* fall through - for 64-bit */
737+ fallthrough; /* for 64-bit */
738738 case LPSETTIMEOUT_NEW:
739739 ret = lp_set_timeout64(minor, (void __user *)arg);
740740 break;
@@ -762,7 +762,7 @@ static long lp_compat_ioctl(struct file *file, unsigned int cmd, · 21 unmodified lines
762762 ret = lp_set_timeout32(minor, (void __user *)arg);
763763 break;
764764 }
765− /* fall through - for x32 mode */
765+ fallthrough; /* for x32 mode */
766766 case LPSETTIMEOUT_NEW:
767767 ret = lp_set_timeout64(minor, (void __user *)arg);
768768 break;
drivers/char/mem.c+1−1
@@ -791,7 +791,7 @@ static loff_t memory_lseek(struct file *file, loff_t offset, int orig) · 790 unmodified lines
791791 switch (orig) {
792792 case SEEK_CUR:
793793 offset += file->f_pos;
794− /* fall through */
794+ fallthrough;
795795 case SEEK_SET:
796796 /* to avoid userland mistaking f_pos=-9 as -EBADF=-9 */
797797 if ((unsigned long long)offset >= -MAX_ERRNO) {
drivers/char/nvram.c+1−1
@@ -286,7 +286,7 @@ static long nvram_misc_ioctl(struct file *file, unsigned int cmd, · 285 unmodified lines
286286 #ifdef CONFIG_PPC
287287 case OBSOLETE_PMAC_NVRAM_GET_OFFSET:
288288 pr_warn("nvram: Using obsolete PMAC_NVRAM_GET_OFFSET ioctl\n");
289− /* fall through */
289+ fallthrough;
290290 case IOC_NVRAM_GET_OFFSET:
291291 ret = -EINVAL;
292292 #ifdef CONFIG_PPC_PMAC
drivers/clocksource/Kconfig+10−2
@@ -653,9 +653,8 @@ config ATCPIT100_TIMER · 652 unmodified lines
653653 This option enables support for the Andestech ATCPIT100 timers.
654654
655655 config RISCV_TIMER
656− bool "Timer for the RISC-V platform"
656+ bool "Timer for the RISC-V platform" if COMPILE_TEST
657657 depends on GENERIC_SCHED_CLOCK && RISCV
658− default y
659658 select TIMER_PROBE
660659 select TIMER_OF
661660 help
@@ -663,6 +662,15 @@ config RISCV_TIMER · 1 unmodified line
663662 is accessed via both the SBI and the rdcycle instruction. This is
664663 required for all RISC-V systems.
665664
665+config CLINT_TIMER
666+ bool "CLINT Timer for the RISC-V platform" if COMPILE_TEST
667+ depends on GENERIC_SCHED_CLOCK && RISCV
668+ select TIMER_PROBE
669+ select TIMER_OF
670+ help
671+ This option enables the CLINT timer for RISC-V systems. The CLINT
672+ driver is usually used for NoMMU RISC-V systems.
673+
666674 config CSKY_MP_TIMER
667675 bool "SMP Timer for the C-SKY platform" if COMPILE_TEST
668676 depends on CSKY
drivers/clocksource/Makefile+1−0
@@ -89,6 +89,7 @@ obj-$(CONFIG_CLKSRC_ST_LPC) += clksrc_st_lpc.o · 88 unmodified lines
8989 obj-$(CONFIG_X86_NUMACHIP) += numachip.o
9090 obj-$(CONFIG_ATCPIT100_TIMER) += timer-atcpit100.o
9191 obj-$(CONFIG_RISCV_TIMER) += timer-riscv.o
92+obj-$(CONFIG_CLINT_TIMER) += timer-clint.o
9293 obj-$(CONFIG_CSKY_MP_TIMER) += timer-mp-csky.o
9394 obj-$(CONFIG_GX6605S_TIMER) += timer-gx6605s.o
9495 obj-$(CONFIG_HYPERV_TIMER) += hyperv_timer.o
drivers/clocksource/timer-cadence-ttc.c+2−2
@@ -309,7 +309,7 @@ static int ttc_rate_change_clocksource_cb(struct notifier_block *nb, · 308 unmodified lines
309309 /* restore original register value */
310310 writel_relaxed(ttccs->scale_clk_ctrl_reg_old,
311311 ttccs->ttc.base_addr + TTC_CLK_CNTRL_OFFSET);
312− /* fall through */
312+ fallthrough;
313313 default:
314314 return NOTIFY_DONE;
315315 }
@@ -392,7 +392,7 @@ static int ttc_rate_change_clockevent_cb(struct notifier_block *nb, · 76 unmodified lines
392392
393393 clockevents_update_freq(&ttcce->ce, ndata->new_rate / PRESCALE);
394394
395− /* fall through */
395+ fallthrough;
396396 case PRE_RATE_CHANGE:
397397 case ABORT_RATE_CHANGE:
398398 default:
drivers/clocksource/timer-clint.c+226−0
@@ -0,0 +1,226 @@
1+// SPDX-License-Identifier: GPL-2.0
2+/*
3+ * Copyright (C) 2020 Western Digital Corporation or its affiliates.
4+ *
5+ * Most of the M-mode (i.e. NoMMU) RISC-V systems usually have a
6+ * CLINT MMIO timer device.
7+ */
8+
9+#define pr_fmt(fmt) "clint: " fmt
10+#include <linux/bitops.h>
11+#include <linux/clocksource.h>
12+#include <linux/clockchips.h>
13+#include <linux/cpu.h>
14+#include <linux/delay.h>
15+#include <linux/module.h>
16+#include <linux/of_address.h>
17+#include <linux/sched_clock.h>
18+#include <linux/io-64-nonatomic-lo-hi.h>
19+#include <linux/interrupt.h>
20+#include <linux/of_irq.h>
21+#include <linux/smp.h>
22+
23+#define CLINT_IPI_OFF 0
24+#define CLINT_TIMER_CMP_OFF 0x4000
25+#define CLINT_TIMER_VAL_OFF 0xbff8
26+
27+/* CLINT manages IPI and Timer for RISC-V M-mode */
28+static u32 __iomem *clint_ipi_base;
29+static u64 __iomem *clint_timer_cmp;
30+static u64 __iomem *clint_timer_val;
31+static unsigned long clint_timer_freq;
32+static unsigned int clint_timer_irq;
33+
34+static void clint_send_ipi(const struct cpumask *target)
35+{
36+ unsigned int cpu;
37+
38+ for_each_cpu(cpu, target)
39+ writel(1, clint_ipi_base + cpuid_to_hartid_map(cpu));
40+}
41+
42+static void clint_clear_ipi(void)
43+{
44+ writel(0, clint_ipi_base + cpuid_to_hartid_map(smp_processor_id()));
45+}
46+
47+static struct riscv_ipi_ops clint_ipi_ops = {
48+ .ipi_inject = clint_send_ipi,
49+ .ipi_clear = clint_clear_ipi,
50+};
51+
52+#ifdef CONFIG_64BIT
53+#define clint_get_cycles() readq_relaxed(clint_timer_val)
54+#else
55+#define clint_get_cycles() readl_relaxed(clint_timer_val)
56+#define clint_get_cycles_hi() readl_relaxed(((u32 *)clint_timer_val) + 1)
57+#endif
58+
59+#ifdef CONFIG_64BIT
60+static u64 notrace clint_get_cycles64(void)
61+{
62+ return clint_get_cycles();
63+}
64+#else /* CONFIG_64BIT */
65+static u64 notrace clint_get_cycles64(void)
66+{
67+ u32 hi, lo;
68+
69+ do {
70+ hi = clint_get_cycles_hi();
71+ lo = clint_get_cycles();
72+ } while (hi != clint_get_cycles_hi());
73+
74+ return ((u64)hi << 32) | lo;
75+}
76+#endif /* CONFIG_64BIT */
77+
78+static u64 clint_rdtime(struct clocksource *cs)
79+{
80+ return clint_get_cycles64();
81+}
82+
83+static struct clocksource clint_clocksource = {
84+ .name = "clint_clocksource",
85+ .rating = 300,
86+ .mask = CLOCKSOURCE_MASK(64),
87+ .flags = CLOCK_SOURCE_IS_CONTINUOUS,
88+ .read = clint_rdtime,
89+};
90+
91+static int clint_clock_next_event(unsigned long delta,
92+ struct clock_event_device *ce)
93+{
94+ void __iomem *r = clint_timer_cmp +
95+ cpuid_to_hartid_map(smp_processor_id());
96+
97+ csr_set(CSR_IE, IE_TIE);
98+ writeq_relaxed(clint_get_cycles64() + delta, r);
99+ return 0;
100+}
101+
102+static DEFINE_PER_CPU(struct clock_event_device, clint_clock_event) = {
103+ .name = "clint_clockevent",
104+ .features = CLOCK_EVT_FEAT_ONESHOT,
105+ .rating = 100,
106+ .set_next_event = clint_clock_next_event,
107+};
108+
109+static int clint_timer_starting_cpu(unsigned int cpu)
110+{
111+ struct clock_event_device *ce = per_cpu_ptr(&clint_clock_event, cpu);
112+
113+ ce->cpumask = cpumask_of(cpu);
114+ clockevents_config_and_register(ce, clint_timer_freq, 100, 0x7fffffff);
115+
116+ enable_percpu_irq(clint_timer_irq,
117+ irq_get_trigger_type(clint_timer_irq));
118+ return 0;
119+}
120+
121+static int clint_timer_dying_cpu(unsigned int cpu)
122+{
123+ disable_percpu_irq(clint_timer_irq);
124+ return 0;
125+}
126+
127+static irqreturn_t clint_timer_interrupt(int irq, void *dev_id)
128+{
129+ struct clock_event_device *evdev = this_cpu_ptr(&clint_clock_event);
130+
131+ csr_clear(CSR_IE, IE_TIE);
132+ evdev->event_handler(evdev);
133+
134+ return IRQ_HANDLED;
135+}
136+
137+static int __init clint_timer_init_dt(struct device_node *np)
138+{
139+ int rc;
140+ u32 i, nr_irqs;
141+ void __iomem *base;
142+ struct of_phandle_args oirq;
143+
144+ /*
145+ * Ensure that CLINT device interrupts are either RV_IRQ_TIMER or
146+ * RV_IRQ_SOFT. If it's anything else then we ignore the device.
147+ */
148+ nr_irqs = of_irq_count(np);
149+ for (i = 0; i < nr_irqs; i++) {
150+ if (of_irq_parse_one(np, i, &oirq)) {
151+ pr_err("%pOFP: failed to parse irq %d.\n", np, i);
152+ continue;
153+ }
154+
155+ if ((oirq.args_count != 1) ||
156+ (oirq.args[0] != RV_IRQ_TIMER &&
157+ oirq.args[0] != RV_IRQ_SOFT)) {
158+ pr_err("%pOFP: invalid irq %d (hwirq %d)\n",
159+ np, i, oirq.args[0]);
160+ return -ENODEV;
161+ }
162+
163+ /* Find parent irq domain and map timer irq */
164+ if (!clint_timer_irq &&
165+ oirq.args[0] == RV_IRQ_TIMER &&
166+ irq_find_host(oirq.np))
167+ clint_timer_irq = irq_of_parse_and_map(np, i);
168+ }
169+
170+ /* If CLINT timer irq not found then fail */
171+ if (!clint_timer_irq) {
172+ pr_err("%pOFP: timer irq not found\n", np);
173+ return -ENODEV;
174+ }
175+
176+ base = of_iomap(np, 0);
177+ if (!base) {
178+ pr_err("%pOFP: could not map registers\n", np);
179+ return -ENODEV;
180+ }
181+
182+ clint_ipi_base = base + CLINT_IPI_OFF;
183+ clint_timer_cmp = base + CLINT_TIMER_CMP_OFF;
184+ clint_timer_val = base + CLINT_TIMER_VAL_OFF;
185+ clint_timer_freq = riscv_timebase;
186+
187+ pr_info("%pOFP: timer running at %ld Hz\n", np, clint_timer_freq);
188+
189+ rc = clocksource_register_hz(&clint_clocksource, clint_timer_freq);
190+ if (rc) {
191+ pr_err("%pOFP: clocksource register failed [%d]\n", np, rc);
192+ goto fail_iounmap;
193+ }
194+
195+ sched_clock_register(clint_get_cycles64, 64, clint_timer_freq);
196+
197+ rc = request_percpu_irq(clint_timer_irq, clint_timer_interrupt,
198+ "clint-timer", &clint_clock_event);
199+ if (rc) {
200+ pr_err("registering percpu irq failed [%d]\n", rc);
201+ goto fail_iounmap;
202+ }
203+
204+ rc = cpuhp_setup_state(CPUHP_AP_CLINT_TIMER_STARTING,
205+ "clockevents/clint/timer:starting",
206+ clint_timer_starting_cpu,
207+ clint_timer_dying_cpu);
208+ if (rc) {
209+ pr_err("%pOFP: cpuhp setup state failed [%d]\n", np, rc);
210+ goto fail_free_irq;
211+ }
212+
213+ riscv_set_ipi_ops(&clint_ipi_ops);
214+ clint_clear_ipi();
215+
216+ return 0;
217+
218+fail_free_irq:
219+ free_irq(clint_timer_irq, &clint_clock_event);
220+fail_iounmap:
221+ iounmap(base);
222+ return rc;
223+}
224+
225+TIMER_OF_DECLARE(clint_timer, "riscv,clint0", clint_timer_init_dt);
226+TIMER_OF_DECLARE(clint_timer1, "sifive,clint0", clint_timer_init_dt);
drivers/clocksource/timer-riscv.c+2−15
@@ -19,26 +19,13 @@ · 18 unmodified lines
1919 #include <linux/of_irq.h>
2020 #include <asm/smp.h>
2121 #include <asm/sbi.h>
22−
23−u64 __iomem *riscv_time_cmp;
24−u64 __iomem *riscv_time_val;
25−
26−static inline void mmio_set_timer(u64 val)
27−{
28− void __iomem *r;
29−
30− r = riscv_time_cmp + cpuid_to_hartid_map(smp_processor_id());
31− writeq_relaxed(val, r);
32−}
22+#include <asm/timex.h>
3323
3424 static int riscv_clock_next_event(unsigned long delta,
3525 struct clock_event_device *ce)
3626 {
3727 csr_set(CSR_IE, IE_TIE);
38− if (IS_ENABLED(CONFIG_RISCV_SBI))
39− sbi_set_timer(get_cycles64() + delta);
40− else
41− mmio_set_timer(get_cycles64() + delta);
28+ sbi_set_timer(get_cycles64() + delta);
4229 return 0;
4330 }
4431
drivers/cpufreq/cpufreq.c+1−2
@@ -703,8 +703,7 @@ static ssize_t show_scaling_cur_freq(struct cpufreq_policy *policy, char *buf) · 702 unmodified lines
703703 freq = arch_freq_get_on_cpu(policy->cpu);
704704 if (freq)
705705 ret = sprintf(buf, "%u\n", freq);
706− else if (cpufreq_driver && cpufreq_driver->setpolicy &&
707− cpufreq_driver->get)
706+ else if (cpufreq_driver->setpolicy && cpufreq_driver->get)
708707 ret = sprintf(buf, "%u\n", cpufreq_driver->get(policy->cpu));
709708 else
710709 ret = sprintf(buf, "%u\n", policy->cur);
drivers/cpufreq/intel_pstate.c+148−88
@@ -219,14 +219,13 @@ struct global_params { · 218 unmodified lines
219219 * @epp_policy: Last saved policy used to set EPP/EPB
220220 * @epp_default: Power on default HWP energy performance
221221 * preference/bias
222− * @epp_saved: Saved EPP/EPB during system suspend or CPU offline
223− * operation
224222 * @epp_cached Cached HWP energy-performance preference value
225223 * @hwp_req_cached: Cached value of the last HWP Request MSR
226224 * @hwp_cap_cached: Cached value of the last HWP Capabilities MSR
227225 * @last_io_update: Last time when IO wake flag was set
228226 * @sched_flags: Store scheduler flags for possible cross CPU update
229227 * @hwp_boost_min: Last HWP boosted min performance
228+ * @suspended: Whether or not the driver has been suspended.
230229 *
231230 * This structure stores per CPU instance data for all CPUs.
232231 */
@@ -258,13 +257,13 @@ struct cpudata { · 25 unmodified lines
258257 s16 epp_powersave;
259258 s16 epp_policy;
260259 s16 epp_default;
261− s16 epp_saved;
262260 s16 epp_cached;
263261 u64 hwp_req_cached;
264262 u64 hwp_cap_cached;
265263 u64 last_io_update;
266264 unsigned int sched_flags;
267265 u32 hwp_boost_min;
266+ bool suspended;
268267 };
269268
270269 static struct cpudata **all_cpu_data;
@@ -644,6 +643,8 @@ static int intel_pstate_get_energy_pref_index(struct cpudata *cpu_data, int *raw · 373 unmodified lines
644643
645644 static int intel_pstate_set_epp(struct cpudata *cpu, u32 epp)
646645 {
646+ int ret;
647+
647648 /*
648649 * Use the cached HWP Request MSR value, because in the active mode the
649650 * register itself may be updated by intel_pstate_hwp_boost_up() or
@@ -659,7 +660,11 @@ static int intel_pstate_set_epp(struct cpudata *cpu, u32 epp) · 9 unmodified lines
659660 * function, so it cannot run in parallel with the update below.
660661 */
661662 WRITE_ONCE(cpu->hwp_req_cached, value);
662− return wrmsrl_on_cpu(cpu->cpu, MSR_HWP_REQUEST, value);
663+ ret = wrmsrl_on_cpu(cpu->cpu, MSR_HWP_REQUEST, value);
664+ if (!ret)
665+ cpu->epp_cached = epp;
666+
667+ return ret;
663668 }
664669
665670 static int intel_pstate_set_energy_pref_index(struct cpudata *cpu_data,
@@ -678,6 +683,14 @@ static int intel_pstate_set_energy_pref_index(struct cpudata *cpu_data, · 12 unmodified lines
678683 else if (epp == -EINVAL)
679684 epp = epp_values[pref_index - 1];
680685
686+ /*
687+ * To avoid confusion, refuse to set EPP to any values different
688+ * from 0 (performance) if the current policy is "performance",
689+ * because those values would be overridden.
690+ */
691+ if (epp > 0 && cpu_data->policy == CPUFREQ_POLICY_PERFORMANCE)
692+ return -EBUSY;
693+
681694 ret = intel_pstate_set_epp(cpu_data, epp);
682695 } else {
683696 if (epp == -EINVAL)
@@ -762,10 +775,8 @@ static ssize_t store_energy_performance_preference( · 78 unmodified lines
762775 cpufreq_stop_governor(policy);
763776 ret = intel_pstate_set_epp(cpu, epp);
764777 err = cpufreq_start_governor(policy);
765− if (!ret) {
766− cpu->epp_cached = epp;
778+ if (!ret)
767779 ret = err;
768− }
769780 }
770781 }
771782
@@ -825,7 +836,7 @@ static void intel_pstate_get_hwp_max(unsigned int cpu, int *phy_max, · 53 unmodified lines
825836
826837 rdmsrl_on_cpu(cpu, MSR_HWP_CAPABILITIES, &cap);
827838 WRITE_ONCE(all_cpu_data[cpu]->hwp_cap_cached, cap);
828− if (global.no_turbo)
839+ if (global.no_turbo || global.turbo_disabled)
829840 *current_max = HWP_GUARANTEED_PERF(cap);
830841 else
831842 *current_max = HWP_HIGHEST_PERF(cap);
@@ -859,12 +870,6 @@ static void intel_pstate_hwp_set(unsigned int cpu) · 27 unmodified lines
859870
860871 cpu_data->epp_policy = cpu_data->policy;
861872
862− if (cpu_data->epp_saved >= 0) {
863− epp = cpu_data->epp_saved;
864− cpu_data->epp_saved = -EINVAL;
865− goto update_epp;
866− }
867−
868873 if (cpu_data->policy == CPUFREQ_POLICY_PERFORMANCE) {
869874 epp = intel_pstate_get_epp(cpu_data, value);
870875 cpu_data->epp_powersave = epp;
@@ -891,7 +896,6 @@ static void intel_pstate_hwp_set(unsigned int cpu) · 20 unmodified lines
891896
892897 epp = cpu_data->epp_powersave;
893898 }
894−update_epp:
895899 if (boot_cpu_has(X86_FEATURE_HWP_EPP)) {
896900 value &= ~GENMASK_ULL(31, 24);
897901 value |= (u64)epp << 24;
@@ -903,14 +907,24 @@ skip_epp: · 5 unmodified lines
903907 wrmsrl_on_cpu(cpu, MSR_HWP_REQUEST, value);
904908 }
905909
906−static void intel_pstate_hwp_force_min_perf(int cpu)
910+static void intel_pstate_hwp_offline(struct cpudata *cpu)
907911 {
908− u64 value;
912+ u64 value = READ_ONCE(cpu->hwp_req_cached);
909913 int min_perf;
910914
911− value = all_cpu_data[cpu]->hwp_req_cached;
915+ if (boot_cpu_has(X86_FEATURE_HWP_EPP)) {
916+ /*
917+ * In case the EPP has been set to "performance" by the
918+ * active mode "performance" scaling algorithm, replace that
919+ * temporary value with the cached EPP one.
920+ */
921+ value &= ~GENMASK_ULL(31, 24);
922+ value |= HWP_ENERGY_PERF_PREFERENCE(cpu->epp_cached);
923+ WRITE_ONCE(cpu->hwp_req_cached, value);
924+ }
925+
912926 value &= ~GENMASK_ULL(31, 0);
913− min_perf = HWP_LOWEST_PERF(all_cpu_data[cpu]->hwp_cap_cached);
927+ min_perf = HWP_LOWEST_PERF(cpu->hwp_cap_cached);
914928
915929 /* Set hwp_max = hwp_min */
916930 value |= HWP_MAX_PERF(min_perf);
@@ -920,19 +934,7 @@ static void intel_pstate_hwp_force_min_perf(int cpu) · 3 unmodified lines
920934 if (boot_cpu_has(X86_FEATURE_HWP_EPP))
921935 value |= HWP_ENERGY_PERF_PREFERENCE(HWP_EPP_POWERSAVE);
922936
923− wrmsrl_on_cpu(cpu, MSR_HWP_REQUEST, value);
924−}
925−
926−static int intel_pstate_hwp_save_state(struct cpufreq_policy *policy)
927−{
928− struct cpudata *cpu_data = all_cpu_data[policy->cpu];
929−
930− if (!hwp_active)
931− return 0;
932−
933− cpu_data->epp_saved = intel_pstate_get_epp(cpu_data, 0);
934−
935− return 0;
937+ wrmsrl_on_cpu(cpu->cpu, MSR_HWP_REQUEST, value);
936938 }
937939
938940 #define POWER_CTL_EE_ENABLE 1
@@ -959,8 +961,28 @@ static void set_power_ctl_ee_state(bool input) · 20 unmodified lines
959961
960962 static void intel_pstate_hwp_enable(struct cpudata *cpudata);
961963
964+static void intel_pstate_hwp_reenable(struct cpudata *cpu)
965+{
966+ intel_pstate_hwp_enable(cpu);
967+ wrmsrl_on_cpu(cpu->cpu, MSR_HWP_REQUEST, READ_ONCE(cpu->hwp_req_cached));
968+}
969+
970+static int intel_pstate_suspend(struct cpufreq_policy *policy)
971+{
972+ struct cpudata *cpu = all_cpu_data[policy->cpu];
973+
974+ pr_debug("CPU %d suspending\n", cpu->cpu);
975+
976+ cpu->suspended = true;
977+
978+ return 0;
979+}
980+
962981 static int intel_pstate_resume(struct cpufreq_policy *policy)
963982 {
983+ struct cpudata *cpu = all_cpu_data[policy->cpu];
984+
985+ pr_debug("CPU %d resuming\n", cpu->cpu);
964986
965987 /* Only restore if the system default is changed */
966988 if (power_ctl_ee_state == POWER_CTL_EE_ENABLE)
@@ -968,18 +990,16 @@ static int intel_pstate_resume(struct cpufreq_policy *policy) · 1 unmodified line
968990 else if (power_ctl_ee_state == POWER_CTL_EE_DISABLE)
969991 set_power_ctl_ee_state(false);
970992
971− if (!hwp_active)
972− return 0;
993+ if (cpu->suspended && hwp_active) {
994+ mutex_lock(&intel_pstate_limits_lock);
973995
974− mutex_lock(&intel_pstate_limits_lock);
996+ /* Re-enable HWP, because "online" has not done that. */
997+ intel_pstate_hwp_reenable(cpu);
975998
976− if (policy->cpu == 0)
977− intel_pstate_hwp_enable(all_cpu_data[policy->cpu]);
999+ mutex_unlock(&intel_pstate_limits_lock);
1000+ }
9781001
979− all_cpu_data[policy->cpu]->epp_policy = 0;
980− intel_pstate_hwp_set(policy->cpu);
981−
982− mutex_unlock(&intel_pstate_limits_lock);
1002+ cpu->suspended = false;
9831003
9841004 return 0;
9851005 }
@@ -1428,7 +1448,6 @@ static void intel_pstate_hwp_enable(struct cpudata *cpudata) · 442 unmodified lines
14281448 wrmsrl_on_cpu(cpudata->cpu, MSR_HWP_INTERRUPT, 0x00);
14291449
14301450 wrmsrl_on_cpu(cpudata->cpu, MSR_PM_ENABLE, 0x1);
1431− cpudata->epp_policy = 0;
14321451 if (cpudata->epp_default == -EINVAL)
14331452 cpudata->epp_default = intel_pstate_get_epp(cpudata, 0);
14341453 }
@@ -2097,25 +2116,31 @@ static int intel_pstate_init_cpu(unsigned int cpunum) · 662 unmodified lines
20972116
20982117 all_cpu_data[cpunum] = cpu;
20992118
2100− cpu->epp_default = -EINVAL;
2101− cpu->epp_powersave = -EINVAL;
2102− cpu->epp_saved = -EINVAL;
2103− }
2104−
2105− cpu = all_cpu_data[cpunum];
2119+ cpu->cpu = cpunum;
21062120
2107− cpu->cpu = cpunum;
2121+ cpu->epp_default = -EINVAL;
21082122
2109− if (hwp_active) {
2110− const struct x86_cpu_id *id;
2123+ if (hwp_active) {
2124+ const struct x86_cpu_id *id;
21112125
2112− intel_pstate_hwp_enable(cpu);
2126+ intel_pstate_hwp_enable(cpu);
21132127
2114− id = x86_match_cpu(intel_pstate_hwp_boost_ids);
2115− if (id && intel_pstate_acpi_pm_profile_server())
2116− hwp_boost = true;
2128+ id = x86_match_cpu(intel_pstate_hwp_boost_ids);
2129+ if (id && intel_pstate_acpi_pm_profile_server())
2130+ hwp_boost = true;
2131+ }
2132+ } else if (hwp_active) {
2133+ /*
2134+ * Re-enable HWP in case this happens after a resume from ACPI
2135+ * S3 if the CPU was offline during the whole system/resume
2136+ * cycle.
2137+ */
2138+ intel_pstate_hwp_reenable(cpu);
21172139 }
21182140
2141+ cpu->epp_powersave = -EINVAL;
2142+ cpu->epp_policy = 0;
2143+
21192144 intel_pstate_get_cpu_pstates(cpu);
21202145
21212146 pr_debug("controlling: cpu %d\n", cpunum);
@@ -2296,28 +2321,61 @@ static int intel_pstate_verify_policy(struct cpufreq_policy_data *policy) · 174 unmodified lines
22962321 return 0;
22972322 }
22982323
2299−static void intel_cpufreq_stop_cpu(struct cpufreq_policy *policy)
2324+static int intel_pstate_cpu_offline(struct cpufreq_policy *policy)
23002325 {
2326+ struct cpudata *cpu = all_cpu_data[policy->cpu];
2327+
2328+ pr_debug("CPU %d going offline\n", cpu->cpu);
2329+
2330+ if (cpu->suspended)
2331+ return 0;
2332+
2333+ /*
2334+ * If the CPU is an SMT thread and it goes offline with the performance
2335+ * settings different from the minimum, it will prevent its sibling
2336+ * from getting to lower performance levels, so force the minimum
2337+ * performance on CPU offline to prevent that from happening.
2338+ */
23012339 if (hwp_active)
2302− intel_pstate_hwp_force_min_perf(policy->cpu);
2340+ intel_pstate_hwp_offline(cpu);
23032341 else
2304− intel_pstate_set_min_pstate(all_cpu_data[policy->cpu]);
2342+ intel_pstate_set_min_pstate(cpu);
2343+
2344+ intel_pstate_exit_perf_limits(policy);
2345+
2346+ return 0;
2347+}
2348+
2349+static int intel_pstate_cpu_online(struct cpufreq_policy *policy)
2350+{
2351+ struct cpudata *cpu = all_cpu_data[policy->cpu];
2352+
2353+ pr_debug("CPU %d going online\n", cpu->cpu);
2354+
2355+ intel_pstate_init_acpi_perf_limits(policy);
2356+
2357+ if (hwp_active) {
2358+ /*
2359+ * Re-enable HWP and clear the "suspended" flag to let "resume"
2360+ * know that it need not do that.
2361+ */
2362+ intel_pstate_hwp_reenable(cpu);
2363+ cpu->suspended = false;
2364+ }
2365+
2366+ return 0;
23052367 }
23062368
23072369 static void intel_pstate_stop_cpu(struct cpufreq_policy *policy)
23082370 {
2309− pr_debug("CPU %d exiting\n", policy->cpu);
2371+ pr_debug("CPU %d stopping\n", policy->cpu);
23102372
23112373 intel_pstate_clear_update_util_hook(policy->cpu);
2312− if (hwp_active)
2313− intel_pstate_hwp_save_state(policy);
2314−
2315− intel_cpufreq_stop_cpu(policy);
23162374 }
23172375
23182376 static int intel_pstate_cpu_exit(struct cpufreq_policy *policy)
23192377 {
2320− intel_pstate_exit_perf_limits(policy);
2378+ pr_debug("CPU %d exiting\n", policy->cpu);
23212379
23222380 policy->fast_switch_possible = false;
23232381
@@ -2378,6 +2436,12 @@ static int intel_pstate_cpu_init(struct cpufreq_policy *policy) · 54 unmodified lines
23782436 */
23792437 policy->policy = CPUFREQ_POLICY_POWERSAVE;
23802438
2439+ if (hwp_active) {
2440+ struct cpudata *cpu = all_cpu_data[policy->cpu];
2441+
2442+ cpu->epp_cached = intel_pstate_get_epp(cpu, 0);
2443+ }
2444+
23812445 return 0;
23822446 }
23832447
@@ -2385,11 +2449,13 @@ static struct cpufreq_driver intel_pstate = { · 1 unmodified line
23852449 .flags = CPUFREQ_CONST_LOOPS,
23862450 .verify = intel_pstate_verify_policy,
23872451 .setpolicy = intel_pstate_set_policy,
2388− .suspend = intel_pstate_hwp_save_state,
2452+ .suspend = intel_pstate_suspend,
23892453 .resume = intel_pstate_resume,
23902454 .init = intel_pstate_cpu_init,
23912455 .exit = intel_pstate_cpu_exit,
23922456 .stop_cpu = intel_pstate_stop_cpu,
2457+ .offline = intel_pstate_cpu_offline,
2458+ .online = intel_pstate_cpu_online,
23932459 .update_limits = intel_pstate_update_limits,
23942460 .name = "intel_pstate",
23952461 };
@@ -2585,7 +2651,7 @@ static int intel_cpufreq_cpu_init(struct cpufreq_policy *policy) · 189 unmodified lines
25852651 policy->transition_delay_us = INTEL_CPUFREQ_TRANSITION_DELAY_HWP;
25862652 rdmsrl_on_cpu(cpu->cpu, MSR_HWP_REQUEST, &value);
25872653 WRITE_ONCE(cpu->hwp_req_cached, value);
2588− cpu->epp_cached = (value & GENMASK_ULL(31, 24)) >> 24;
2654+ cpu->epp_cached = intel_pstate_get_epp(cpu, value);
25892655 } else {
25902656 turbo_max = cpu->pstate.turbo_pstate;
25912657 policy->transition_delay_us = INTEL_CPUFREQ_TRANSITION_DELAY;
@@ -2644,7 +2710,10 @@ static struct cpufreq_driver intel_cpufreq = { · 52 unmodified lines
26442710 .fast_switch = intel_cpufreq_fast_switch,
26452711 .init = intel_cpufreq_cpu_init,
26462712 .exit = intel_cpufreq_cpu_exit,
2647− .stop_cpu = intel_cpufreq_stop_cpu,
2713+ .offline = intel_pstate_cpu_offline,
2714+ .online = intel_pstate_cpu_online,
2715+ .suspend = intel_pstate_suspend,
2716+ .resume = intel_pstate_resume,
26482717 .update_limits = intel_pstate_update_limits,
26492718 .name = "intel_cpufreq",
26502719 };
@@ -2667,9 +2736,6 @@ static void intel_pstate_driver_cleanup(void) · 16 unmodified lines
26672736 }
26682737 put_online_cpus();
26692738
2670− if (intel_pstate_driver == &intel_pstate)
2671− intel_pstate_sysfs_hide_hwp_dynamic_boost();
2672−
26732739 intel_pstate_driver = NULL;
26742740 }
26752741
@@ -2695,14 +2761,6 @@ static int intel_pstate_register_driver(struct cpufreq_driver *driver) · 19 unmodified lines
26952761 return 0;
26962762 }
26972763
2698−static int intel_pstate_unregister_driver(void)
2699−{
2700− cpufreq_unregister_driver(intel_pstate_driver);
2701− intel_pstate_driver_cleanup();
2702−
2703− return 0;
2704−}
2705−
27062764 static ssize_t intel_pstate_show_status(char *buf)
27072765 {
27082766 if (!intel_pstate_driver)
@@ -2714,20 +2772,23 @@ static ssize_t intel_pstate_show_status(char *buf) · 5 unmodified lines
27142772
27152773 static int intel_pstate_update_status(const char *buf, size_t size)
27162774 {
2717− int ret;
2775+ if (size == 3 && !strncmp(buf, "off", size)) {
2776+ if (!intel_pstate_driver)
2777+ return -EINVAL;
2778+
2779+ if (hwp_active)
2780+ return -EBUSY;
27182781
2719− if (size == 3 && !strncmp(buf, "off", size))
2720− return intel_pstate_driver ?
2721− intel_pstate_unregister_driver() : -EINVAL;
2782+ cpufreq_unregister_driver(intel_pstate_driver);
2783+ intel_pstate_driver_cleanup();
2784+ }
27222785
27232786 if (size == 6 && !strncmp(buf, "active", size)) {
27242787 if (intel_pstate_driver) {
27252788 if (intel_pstate_driver == &intel_pstate)
27262789 return 0;
27272790
2728− ret = intel_pstate_unregister_driver();
2729− if (ret)
2730− return ret;
2791+ cpufreq_unregister_driver(intel_pstate_driver);
27312792 }
27322793
27332794 return intel_pstate_register_driver(&intel_pstate);
@@ -2738,9 +2799,8 @@ static int intel_pstate_update_status(const char *buf, size_t size) · 4 unmodified lines
27382799 if (intel_pstate_driver == &intel_cpufreq)
27392800 return 0;
27402801
2741− ret = intel_pstate_unregister_driver();
2742− if (ret)
2743− return ret;
2802+ cpufreq_unregister_driver(intel_pstate_driver);
2803+ intel_pstate_sysfs_hide_hwp_dynamic_boost();
27442804 }
27452805
27462806 return intel_pstate_register_driver(&intel_cpufreq);
drivers/cpufreq/p4-clockmod.c+1−1
@@ -129,7 +129,7 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c) · 128 unmodified lines
129129 return speedstep_get_frequency(SPEEDSTEP_CPU_PCORE);
130130 case 0x0D: /* Pentium M (Dothan) */
131131 p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
132− /* fall through */
132+ fallthrough;
133133 case 0x09: /* Pentium M (Banias) */
134134 return speedstep_get_frequency(SPEEDSTEP_CPU_PM);
135135 }
drivers/cpufreq/speedstep-lib.c+1−1
@@ -366,7 +366,7 @@ enum speedstep_processor speedstep_detect_processor(void) · 365 unmodified lines
366366 } else
367367 return SPEEDSTEP_CPU_PIII_C;
368368 }
369− /* fall through */
369+ fallthrough;
370370 default:
371371 return 0;
372372 }
drivers/cpufreq/tegra194-cpufreq.c+7−3
@@ -56,9 +56,11 @@ struct read_counters_work { · 55 unmodified lines
5656
5757 static struct workqueue_struct *read_counters_wq;
5858
59−static enum cluster get_cpu_cluster(u8 cpu)
59+static void get_cpu_cluster(void *cluster)
6060 {
61− return MPIDR_AFFINITY_LEVEL(cpu_logical_map(cpu), 1);
61+ u64 mpidr = read_cpuid_mpidr() & MPIDR_HWID_BITMASK;
62+
63+ *((uint32_t *)cluster) = MPIDR_AFFINITY_LEVEL(mpidr, 1);
6264 }
6365
6466 /*
@@ -186,8 +188,10 @@ static unsigned int tegra194_get_speed(u32 cpu) · 121 unmodified lines
186188 static int tegra194_cpufreq_init(struct cpufreq_policy *policy)
187189 {
188190 struct tegra194_cpufreq_data *data = cpufreq_get_driver_data();
189− int cl = get_cpu_cluster(policy->cpu);
190191 u32 cpu;
192+ u32 cl;
193+
194+ smp_call_function_single(policy->cpu, get_cpu_cluster, &cl, true);
191195
192196 if (cl >= data->num_clusters)
193197 return -EINVAL;
drivers/cpufreq/ti-cpufreq.c+2−2
@@ -86,11 +86,11 @@ static unsigned long dra7_efuse_xlate(struct ti_cpufreq_data *opp_data, · 85 unmodified lines
8686 case DRA76_EFUSE_HAS_PLUS_MPU_OPP:
8787 case DRA76_EFUSE_HAS_ALL_MPU_OPP:
8888 calculated_efuse |= DRA76_EFUSE_PLUS_MPU_OPP;
89− /* Fall through */
89+ fallthrough;
9090 case DRA7_EFUSE_HAS_ALL_MPU_OPP:
9191 case DRA7_EFUSE_HAS_HIGH_MPU_OPP:
9292 calculated_efuse |= DRA7_EFUSE_HIGH_MPU_OPP;
93− /* Fall through */
93+ fallthrough;
9494 case DRA7_EFUSE_HAS_OD_MPU_OPP:
9595 calculated_efuse |= DRA7_EFUSE_OD_MPU_OPP;
9696 }
drivers/cpuidle/cpuidle.c+14−5
@@ -22,6 +22,7 @@ · 21 unmodified lines
2222 #include <linux/module.h>
2323 #include <linux/suspend.h>
2424 #include <linux/tick.h>
25+#include <linux/mmu_context.h>
2526 #include <trace/events/power.h>
2627
2728 #include "cpuidle.h"
@@ -145,21 +146,24 @@ static void enter_s2idle_proper(struct cpuidle_driver *drv, · 117 unmodified lines
145146 * executing it contains RCU usage regarded as invalid in the idle
146147 * context, so tell RCU about that.
147148 */
148− RCU_NONIDLE(tick_freeze());
149+ tick_freeze();
149150 /*
150151 * The state used here cannot be a "coupled" one, because the "coupled"
151152 * cpuidle mechanism enables interrupts and doing that with timekeeping
152153 * suspended is generally unsafe.
153154 */
154155 stop_critical_timings();
156+ rcu_idle_enter();
155157 drv->states[index].enter_s2idle(dev, drv, index);
156− WARN_ON(!irqs_disabled());
158+ if (WARN_ON_ONCE(!irqs_disabled()))
159+ local_irq_disable();
157160 /*
158161 * timekeeping_resume() that will be called by tick_unfreeze() for the
159162 * first CPU executing it calls functions containing RCU read-side
160163 * critical sections, so tell RCU about that.
161164 */
162− RCU_NONIDLE(tick_unfreeze());
165+ rcu_idle_exit();
166+ tick_unfreeze();
163167 start_critical_timings();
164168
165169 time_end = ns_to_ktime(local_clock());
@@ -225,19 +229,24 @@ int cpuidle_enter_state(struct cpuidle_device *dev, struct cpuidle_driver *drv, · 59 unmodified lines
225229 broadcast = false;
226230 }
227231
232+ if (target_state->flags & CPUIDLE_FLAG_TLB_FLUSHED)
233+ leave_mm(dev->cpu);
234+
228235 /* Take note of the planned idle state. */
229236 sched_idle_set_state(target_state);
230237
231− trace_cpu_idle_rcuidle(index, dev->cpu);
238+ trace_cpu_idle(index, dev->cpu);
232239 time_start = ns_to_ktime(local_clock());
233240
234241 stop_critical_timings();
242+ rcu_idle_enter();
235243 entered_state = target_state->enter(dev, drv, index);
244+ rcu_idle_exit();
236245 start_critical_timings();
237246
238247 sched_clock_idle_wakeup_event();
239248 time_end = ns_to_ktime(local_clock());
240− trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, dev->cpu);
249+ trace_cpu_idle(PWR_EVENT_EXIT, dev->cpu);
241250
242251 /* The cpu is no longer idle or about to enter idle. */
243252 sched_idle_set_state(NULL);
drivers/crypto/Kconfig+3−0
@@ -873,6 +873,9 @@ config CRYPTO_DEV_SA2UL · 872 unmodified lines
873873 select CRYPTO_AES
874874 select CRYPTO_AES_ARM64
875875 select CRYPTO_ALGAPI
876+ select CRYPTO_SHA1
877+ select CRYPTO_SHA256
878+ select CRYPTO_SHA512
876879 select HW_RANDOM
877880 select SG_SPLIT
878881 help
drivers/crypto/axis/artpec6_crypto.c+1−1
@@ -2310,7 +2310,7 @@ static int artpec6_crypto_prepare_submit_hash(struct ahash_request *req) · 2309 unmodified lines
23102310
23112311 case ARTPEC6_CRYPTO_PREPARE_HASH_NO_START:
23122312 ret = 0;
2313− /* Fallthrough */
2313+ fallthrough;
23142314
23152315 default:
23162316 artpec6_crypto_common_destroy(&req_ctx->common);
drivers/crypto/cavium/cpt/cptvf_reqmanager.c+2−2
@@ -90,11 +90,11 @@ static int setup_sgio_components(struct cpt_vf *cptvf, struct buf_ptr *list, · 89 unmodified lines
9090 case 3:
9191 sg_ptr->u.s.len2 = cpu_to_be16(list[i * 4 + 2].size);
9292 sg_ptr->ptr2 = cpu_to_be64(list[i * 4 + 2].dma_addr);
93− /* Fall through */
93+ fallthrough;
9494 case 2:
9595 sg_ptr->u.s.len1 = cpu_to_be16(list[i * 4 + 1].size);
9696 sg_ptr->ptr1 = cpu_to_be64(list[i * 4 + 1].dma_addr);
97− /* Fall through */
97+ fallthrough;
9898 case 1:
9999 sg_ptr->u.s.len0 = cpu_to_be16(list[i * 4 + 0].size);
100100 sg_ptr->ptr0 = cpu_to_be64(list[i * 4 + 0].dma_addr);
drivers/crypto/chelsio/chcr_ktls.c+2−2
@@ -135,7 +135,7 @@ static int chcr_ktls_update_connection_state(struct chcr_ktls_info *tx_info, · 134 unmodified lines
135135 break;
136136 /* update to the next state and also initialize TCB */
137137 tx_info->connection_state = new_state;
138− /* FALLTHRU */
138+ fallthrough;
139139 case KTLS_CONN_ACT_OPEN_RPL:
140140 /* if we are stuck in this state, means tcb init might not
141141 * received by HW, try sending it again.
@@ -150,7 +150,7 @@ static int chcr_ktls_update_connection_state(struct chcr_ktls_info *tx_info, · 8 unmodified lines
150150 break;
151151 /* update to the next state and check if l2t_state is valid */
152152 tx_info->connection_state = new_state;
153− /* FALLTHRU */
153+ fallthrough;
154154 case KTLS_CONN_SET_TCB_RPL:
155155 /* Check if l2t state is valid, then move to ready state. */
156156 if (cxgb4_check_l2t_valid(tx_info->l2te)) {
drivers/crypto/marvell/octeontx/otx_cptvf_reqmgr.c+2−2
@@ -140,11 +140,11 @@ static inline int setup_sgio_components(struct pci_dev *pdev, · 139 unmodified lines
140140 case 3:
141141 sg_ptr->u.s.len2 = cpu_to_be16(list[i * 4 + 2].size);
142142 sg_ptr->ptr2 = cpu_to_be64(list[i * 4 + 2].dma_addr);
143− /* Fall through */
143+ fallthrough;
144144 case 2:
145145 sg_ptr->u.s.len1 = cpu_to_be16(list[i * 4 + 1].size);
146146 sg_ptr->ptr1 = cpu_to_be64(list[i * 4 + 1].dma_addr);
147− /* Fall through */
147+ fallthrough;
148148 case 1:
149149 sg_ptr->u.s.len0 = cpu_to_be16(list[i * 4 + 0].size);
150150 sg_ptr->ptr0 = cpu_to_be64(list[i * 4 + 0].dma_addr);
drivers/crypto/qat/qat_common/adf_admin.c+4−3
@@ -131,9 +131,10 @@ static int adf_put_admin_msg_sync(struct adf_accel_dev *accel_dev, u32 ae, · 130 unmodified lines
131131 memcpy(admin->virt_addr + offset, in, ADF_ADMINMSG_LEN);
132132 ADF_CSR_WR(mailbox, mb_offset, 1);
133133
134− ret = readl_poll_timeout(mailbox + mb_offset, status,
135− status == 0, ADF_ADMIN_POLL_DELAY_US,
136− ADF_ADMIN_POLL_TIMEOUT_US);
134+ ret = read_poll_timeout(ADF_CSR_RD, status, status == 0,
135+ ADF_ADMIN_POLL_DELAY_US,
136+ ADF_ADMIN_POLL_TIMEOUT_US, true,
137+ mailbox, mb_offset);
137138 if (ret < 0) {
138139 /* Response timeout */
139140 dev_err(&GET_DEV(accel_dev),
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c+1−1
@@ -340,7 +340,7 @@ static int adf_vf2pf_request_version(struct adf_accel_dev *accel_dev) · 339 unmodified lines
340340 /* VF is newer than PF and decides whether it is compatible */
341341 if (accel_dev->vf.pf_version >= hw_data->min_iov_compat_ver)
342342 break;
343− /* fall through */
343+ fallthrough;
344344 case ADF_PF2VF_VF_INCOMPATIBLE:
345345 dev_err(&GET_DEV(accel_dev),
346346 "PF (vers %d) and VF (vers %d) are not compatible\n",
drivers/crypto/qat/qat_common/qat_uclo.c+3−3
@@ -752,7 +752,7 @@ static int qat_uclo_init_reg(struct icp_qat_fw_loader_handle *handle, · 751 unmodified lines
752752 case ICP_GPA_ABS:
753753 case ICP_GPB_ABS:
754754 ctx_mask = 0;
755− /* fall through */
755+ fallthrough;
756756 case ICP_GPA_REL:
757757 case ICP_GPB_REL:
758758 return qat_hal_init_gpr(handle, ae, ctx_mask, reg_type,
@@ -762,7 +762,7 @@ static int qat_uclo_init_reg(struct icp_qat_fw_loader_handle *handle, · 3 unmodified lines
762762 case ICP_SR_RD_ABS:
763763 case ICP_DR_RD_ABS:
764764 ctx_mask = 0;
765− /* fall through */
765+ fallthrough;
766766 case ICP_SR_REL:
767767 case ICP_DR_REL:
768768 case ICP_SR_RD_REL:
@@ -772,7 +772,7 @@ static int qat_uclo_init_reg(struct icp_qat_fw_loader_handle *handle, · 3 unmodified lines
772772 case ICP_SR_WR_ABS:
773773 case ICP_DR_WR_ABS:
774774 ctx_mask = 0;
775− /* fall through */
775+ fallthrough;
776776 case ICP_SR_WR_REL:
777777 case ICP_DR_WR_REL:
778778 return qat_hal_init_wr_xfer(handle, ae, ctx_mask, reg_type,
drivers/crypto/ux500/cryp/cryp.c+6−6
@@ -314,17 +314,17 @@ void cryp_save_device_context(struct cryp_device_data *device_data, · 313 unmodified lines
314314 case CRYP_KEY_SIZE_256:
315315 ctx->key_4_l = readl_relaxed(&src_reg->key_4_l);
316316 ctx->key_4_r = readl_relaxed(&src_reg->key_4_r);
317− /* Fall through */
317+ fallthrough;
318318
319319 case CRYP_KEY_SIZE_192:
320320 ctx->key_3_l = readl_relaxed(&src_reg->key_3_l);
321321 ctx->key_3_r = readl_relaxed(&src_reg->key_3_r);
322− /* Fall through */
322+ fallthrough;
323323
324324 case CRYP_KEY_SIZE_128:
325325 ctx->key_2_l = readl_relaxed(&src_reg->key_2_l);
326326 ctx->key_2_r = readl_relaxed(&src_reg->key_2_r);
327− /* Fall through */
327+ fallthrough;
328328
329329 default:
330330 ctx->key_1_l = readl_relaxed(&src_reg->key_1_l);
@@ -364,17 +364,17 @@ void cryp_restore_device_context(struct cryp_device_data *device_data, · 33 unmodified lines
364364 case CRYP_KEY_SIZE_256:
365365 writel_relaxed(ctx->key_4_l, &reg->key_4_l);
366366 writel_relaxed(ctx->key_4_r, &reg->key_4_r);
367− /* Fall through */
367+ fallthrough;
368368
369369 case CRYP_KEY_SIZE_192:
370370 writel_relaxed(ctx->key_3_l, &reg->key_3_l);
371371 writel_relaxed(ctx->key_3_r, &reg->key_3_r);
372− /* Fall through */
372+ fallthrough;
373373
374374 case CRYP_KEY_SIZE_128:
375375 writel_relaxed(ctx->key_2_l, &reg->key_2_l);
376376 writel_relaxed(ctx->key_2_r, &reg->key_2_r);
377− /* Fall through */
377+ fallthrough;
378378
379379 default:
380380 writel_relaxed(ctx->key_1_l, &reg->key_1_l);
drivers/dax/device.c+1−1
@@ -429,7 +429,7 @@ int dev_dax_probe(struct device *dev) · 428 unmodified lines
429429 return -EBUSY;
430430 }
431431
432− dev_dax->pgmap.type = MEMORY_DEVICE_DEVDAX;
432+ dev_dax->pgmap.type = MEMORY_DEVICE_GENERIC;
433433 addr = devm_memremap_pages(dev, &dev_dax->pgmap);
434434 if (IS_ERR(addr))
435435 return PTR_ERR(addr);
drivers/dax/super.c+6−0
@@ -100,6 +100,12 @@ bool __generic_fsdax_supported(struct dax_device *dax_dev, · 99 unmodified lines
100100 return false;
101101 }
102102
103+ if (!dax_dev && !bdev_dax_supported(bdev, blocksize)) {
104+ pr_debug("%s: error: dax unsupported by block device\n",
105+ bdevname(bdev, buf));
106+ return false;
107+ }
108+
103109 id = dax_read_lock();
104110 len = dax_direct_access(dax_dev, pgoff, 1, &kaddr, &pfn);
105111 len2 = dax_direct_access(dax_dev, pgoff_end, 1, &end_kaddr, &end_pfn);
drivers/dma/acpi-dma.c+3−1
@@ -135,11 +135,13 @@ static void acpi_dma_parse_csrt(struct acpi_device *adev, struct acpi_dma *adma) · 134 unmodified lines
135135 if (ret < 0) {
136136 dev_warn(&adev->dev,
137137 "error in parsing resource group\n");
138− return;
138+ break;
139139 }
140140
141141 grp = (struct acpi_csrt_group *)((void *)grp + grp->length);
142142 }
143+
144+ acpi_put_table((struct acpi_table_header *)csrt);
143145 }
144146
145147 /**
drivers/dma/amba-pl08x.c+5−5
@@ -1767,7 +1767,7 @@ static u32 pl08x_memcpy_cctl(struct pl08x_driver_data *pl08x) · 1766 unmodified lines
17671767 default:
17681768 dev_err(&pl08x->adev->dev,
17691769 "illegal burst size for memcpy, set to 1\n");
1770− /* Fall through */
1770+ fallthrough;
17711771 case PL08X_BURST_SZ_1:
17721772 cctl |= PL080_BSIZE_1 << PL080_CONTROL_SB_SIZE_SHIFT |
17731773 PL080_BSIZE_1 << PL080_CONTROL_DB_SIZE_SHIFT;
@@ -1806,7 +1806,7 @@ static u32 pl08x_memcpy_cctl(struct pl08x_driver_data *pl08x) · 32 unmodified lines
18061806 default:
18071807 dev_err(&pl08x->adev->dev,
18081808 "illegal bus width for memcpy, set to 8 bits\n");
1809− /* Fall through */
1809+ fallthrough;
18101810 case PL08X_BUS_WIDTH_8_BITS:
18111811 cctl |= PL080_WIDTH_8BIT << PL080_CONTROL_SWIDTH_SHIFT |
18121812 PL080_WIDTH_8BIT << PL080_CONTROL_DWIDTH_SHIFT;
@@ -1850,7 +1850,7 @@ static u32 pl08x_ftdmac020_memcpy_cctl(struct pl08x_driver_data *pl08x) · 37 unmodified lines
18501850 default:
18511851 dev_err(&pl08x->adev->dev,
18521852 "illegal bus width for memcpy, set to 8 bits\n");
1853− /* Fall through */
1853+ fallthrough;
18541854 case PL08X_BUS_WIDTH_8_BITS:
18551855 cctl |= PL080_WIDTH_8BIT << FTDMAC020_LLI_SRC_WIDTH_SHIFT |
18561856 PL080_WIDTH_8BIT << FTDMAC020_LLI_DST_WIDTH_SHIFT;
@@ -2612,7 +2612,7 @@ static int pl08x_of_probe(struct amba_device *adev, · 755 unmodified lines
26122612 switch (val) {
26132613 default:
26142614 dev_err(&adev->dev, "illegal burst size for memcpy, set to 1\n");
2615− /* Fall through */
2615+ fallthrough;
26162616 case 1:
26172617 pd->memcpy_burst_size = PL08X_BURST_SZ_1;
26182618 break;
@@ -2647,7 +2647,7 @@ static int pl08x_of_probe(struct amba_device *adev, · 28 unmodified lines
26472647 switch (val) {
26482648 default:
26492649 dev_err(&adev->dev, "illegal bus width for memcpy, set to 8 bits\n");
2650− /* Fall through */
2650+ fallthrough;
26512651 case 8:
26522652 pd->memcpy_bus_width = PL08X_BUS_WIDTH_8_BITS;
26532653 break;
drivers/dma/at_hdmac.c+9−2
@@ -1650,13 +1650,17 @@ static struct dma_chan *at_dma_xlate(struct of_phandle_args *dma_spec, · 1649 unmodified lines
16501650 return NULL;
16511651
16521652 dmac_pdev = of_find_device_by_node(dma_spec->np);
1653+ if (!dmac_pdev)
1654+ return NULL;
16531655
16541656 dma_cap_zero(mask);
16551657 dma_cap_set(DMA_SLAVE, mask);
16561658
16571659 atslave = kmalloc(sizeof(*atslave), GFP_KERNEL);
1658− if (!atslave)
1660+ if (!atslave) {
1661+ put_device(&dmac_pdev->dev);
16591662 return NULL;
1663+ }
16601664
16611665 atslave->cfg = ATC_DST_H2SEL_HW | ATC_SRC_H2SEL_HW;
16621666 /*
@@ -1685,8 +1689,11 @@ static struct dma_chan *at_dma_xlate(struct of_phandle_args *dma_spec, · 22 unmodified lines
16851689 atslave->dma_dev = &dmac_pdev->dev;
16861690
16871691 chan = dma_request_channel(mask, at_dma_filter, atslave);
1688− if (!chan)
1692+ if (!chan) {
1693+ put_device(&dmac_pdev->dev);
1694+ kfree(atslave);
16891695 return NULL;
1696+ }
16901697
16911698 atchan = to_at_dma_chan(chan);
16921699 atchan->per_if = dma_spec->args[0] & 0xff;
drivers/dma/dma-jz4780.c+19−19
@@ -879,24 +879,11 @@ static int jz4780_dma_probe(struct platform_device *pdev) · 878 unmodified lines
879879 return -EINVAL;
880880 }
881881
882− ret = platform_get_irq(pdev, 0);
883− if (ret < 0)
884− return ret;
885−
886− jzdma->irq = ret;
887−
888− ret = request_irq(jzdma->irq, jz4780_dma_irq_handler, 0, dev_name(dev),
889− jzdma);
890− if (ret) {
891− dev_err(dev, "failed to request IRQ %u!\n", jzdma->irq);
892− return ret;
893− }
894−
895882 jzdma->clk = devm_clk_get(dev, NULL);
896883 if (IS_ERR(jzdma->clk)) {
897884 dev_err(dev, "failed to get clock\n");
898885 ret = PTR_ERR(jzdma->clk);
899− goto err_free_irq;
886+ return ret;
900887 }
901888
902889 clk_prepare_enable(jzdma->clk);
@@ -949,10 +936,23 @@ static int jz4780_dma_probe(struct platform_device *pdev) · 46 unmodified lines
949936 jzchan->vchan.desc_free = jz4780_dma_desc_free;
950937 }
951938
939+ ret = platform_get_irq(pdev, 0);
940+ if (ret < 0)
941+ goto err_disable_clk;
942+
943+ jzdma->irq = ret;
944+
945+ ret = request_irq(jzdma->irq, jz4780_dma_irq_handler, 0, dev_name(dev),
946+ jzdma);
947+ if (ret) {
948+ dev_err(dev, "failed to request IRQ %u!\n", jzdma->irq);
949+ goto err_disable_clk;
950+ }
951+
952952 ret = dmaenginem_async_device_register(dd);
953953 if (ret) {
954954 dev_err(dev, "failed to register device\n");
955− goto err_disable_clk;
955+ goto err_free_irq;
956956 }
957957
958958 /* Register with OF DMA helpers. */
@@ -960,17 +960,17 @@ static int jz4780_dma_probe(struct platform_device *pdev) · 1 unmodified line
960960 jzdma);
961961 if (ret) {
962962 dev_err(dev, "failed to register OF DMA controller\n");
963− goto err_disable_clk;
963+ goto err_free_irq;
964964 }
965965
966966 dev_info(dev, "JZ4780 DMA controller initialised\n");
967967 return 0;
968968
969−err_disable_clk:
970− clk_disable_unprepare(jzdma->clk);
971−
972969 err_free_irq:
973970 free_irq(jzdma->irq, jzdma);
971+
972+err_disable_clk:
973+ clk_disable_unprepare(jzdma->clk);
974974 return ret;
975975 }
976976
drivers/dma/dw-edma/dw-edma-core.c+6−5
@@ -405,7 +405,7 @@ dw_edma_device_transfer(struct dw_edma_transfer *xfer) · 404 unmodified lines
405405 if (xfer->cyclic) {
406406 burst->dar = xfer->xfer.cyclic.paddr;
407407 } else {
408− burst->dar = sg_dma_address(sg);
408+ burst->dar = dst_addr;
409409 /* Unlike the typical assumption by other
410410 * drivers/IPs the peripheral memory isn't
411411 * a FIFO memory, in this case, it's a
@@ -413,14 +413,13 @@ dw_edma_device_transfer(struct dw_edma_transfer *xfer) · 1 unmodified line
413413 * and destination addresses are increased
414414 * by the same portion (data length)
415415 */
416− src_addr += sg_dma_len(sg);
417416 }
418417 } else {
419418 burst->dar = dst_addr;
420419 if (xfer->cyclic) {
421420 burst->sar = xfer->xfer.cyclic.paddr;
422421 } else {
423− burst->sar = sg_dma_address(sg);
422+ burst->sar = src_addr;
424423 /* Unlike the typical assumption by other
425424 * drivers/IPs the peripheral memory isn't
426425 * a FIFO memory, in this case, it's a
@@ -428,12 +427,14 @@ dw_edma_device_transfer(struct dw_edma_transfer *xfer) · 1 unmodified line
428427 * and destination addresses are increased
429428 * by the same portion (data length)
430429 */
431− dst_addr += sg_dma_len(sg);
432430 }
433431 }
434432
435− if (!xfer->cyclic)
433+ if (!xfer->cyclic) {
434+ src_addr += sg_dma_len(sg);
435+ dst_addr += sg_dma_len(sg);
436436 sg = sg_next(sg);
437+ }
437438 }
438439
439440 return vchan_tx_prep(&chan->vc, &desc->vd, xfer->flags);
drivers/dma/fsldma.c+1−1
@@ -1163,7 +1163,7 @@ static int fsl_dma_chan_probe(struct fsldma_device *fdev, · 1162 unmodified lines
11631163 switch (chan->feature & FSL_DMA_IP_MASK) {
11641164 case FSL_DMA_IP_85XX:
11651165 chan->toggle_ext_pause = fsl_chan_toggle_ext_pause;
1166− /* Fall through */
1166+ fallthrough;
11671167 case FSL_DMA_IP_83XX:
11681168 chan->toggle_ext_start = fsl_chan_toggle_ext_start;
11691169 chan->set_src_loop_size = fsl_chan_set_src_loop_size;
drivers/dma/fsldma.h+6−6
@@ -205,10 +205,10 @@ struct fsldma_chan { · 204 unmodified lines
205205 #else
206206 static u64 fsl_ioread64(const u64 __iomem *addr)
207207 {
208− u32 fsl_addr = lower_32_bits(addr);
209− u64 fsl_addr_hi = (u64)in_le32((u32 *)(fsl_addr + 1)) << 32;
208+ u32 val_lo = in_le32((u32 __iomem *)addr);
209+ u32 val_hi = in_le32((u32 __iomem *)addr + 1);
210210
211− return fsl_addr_hi | in_le32((u32 *)fsl_addr);
211+ return ((u64)val_hi << 32) + val_lo;
212212 }
213213
214214 static void fsl_iowrite64(u64 val, u64 __iomem *addr)
@@ -219,10 +219,10 @@ static void fsl_iowrite64(u64 val, u64 __iomem *addr) · 4 unmodified lines
219219
220220 static u64 fsl_ioread64be(const u64 __iomem *addr)
221221 {
222− u32 fsl_addr = lower_32_bits(addr);
223− u64 fsl_addr_hi = (u64)in_be32((u32 *)fsl_addr) << 32;
222+ u32 val_hi = in_be32((u32 __iomem *)addr);
223+ u32 val_lo = in_be32((u32 __iomem *)addr + 1);
224224
225− return fsl_addr_hi | in_be32((u32 *)(fsl_addr + 1));
225+ return ((u64)val_hi << 32) + val_lo;
226226 }
227227
228228 static void fsl_iowrite64be(u64 val, u64 __iomem *addr)
drivers/dma/idxd/device.c+26−0
@@ -410,10 +410,27 @@ int idxd_device_enable(struct idxd_device *idxd) · 409 unmodified lines
410410 return 0;
411411 }
412412
413+void idxd_device_wqs_clear_state(struct idxd_device *idxd)
414+{
415+ int i;
416+
417+ lockdep_assert_held(&idxd->dev_lock);
418+
419+ for (i = 0; i < idxd->max_wqs; i++) {
420+ struct idxd_wq *wq = &idxd->wqs[i];
421+
422+ if (wq->state == IDXD_WQ_ENABLED) {
423+ idxd_wq_disable_cleanup(wq);
424+ wq->state = IDXD_WQ_DISABLED;
425+ }
426+ }
427+}
428+
413429 int idxd_device_disable(struct idxd_device *idxd)
414430 {
415431 struct device *dev = &idxd->pdev->dev;
416432 u32 status;
433+ unsigned long flags;
417434
418435 if (!idxd_is_enabled(idxd)) {
419436 dev_dbg(dev, "Device is not enabled\n");
@@ -429,13 +446,22 @@ int idxd_device_disable(struct idxd_device *idxd) · 9 unmodified lines
429446 return -ENXIO;
430447 }
431448
449+ spin_lock_irqsave(&idxd->dev_lock, flags);
450+ idxd_device_wqs_clear_state(idxd);
432451 idxd->state = IDXD_DEV_CONF_READY;
452+ spin_unlock_irqrestore(&idxd->dev_lock, flags);
433453 return 0;
434454 }
435455
436456 void idxd_device_reset(struct idxd_device *idxd)
437457 {
458+ unsigned long flags;
459+
438460 idxd_cmd_exec(idxd, IDXD_CMD_RESET_DEVICE, 0, NULL);
461+ spin_lock_irqsave(&idxd->dev_lock, flags);
462+ idxd_device_wqs_clear_state(idxd);
463+ idxd->state = IDXD_DEV_CONF_READY;
464+ spin_unlock_irqrestore(&idxd->dev_lock, flags);
439465 }
440466
441467 /* Device configuration bits */
drivers/dma/idxd/irq.c+0−12
@@ -11,18 +11,6 @@ · 10 unmodified lines
1111 #include "idxd.h"
1212 #include "registers.h"
1313
14−void idxd_device_wqs_clear_state(struct idxd_device *idxd)
15−{
16− int i;
17−
18− lockdep_assert_held(&idxd->dev_lock);
19− for (i = 0; i < idxd->max_wqs; i++) {
20− struct idxd_wq *wq = &idxd->wqs[i];
21−
22− wq->state = IDXD_WQ_DISABLED;
23− }
24−}
25−
2614 static void idxd_device_reinit(struct work_struct *work)
2715 {
2816 struct idxd_device *idxd = container_of(work, struct idxd_device, work);
drivers/dma/imx-dma.c+1−1
@@ -556,7 +556,7 @@ static int imxdma_xfer_desc(struct imxdma_desc *d) · 555 unmodified lines
556556 * We fall-through here intentionally, since a 2D transfer is
557557 * similar to MEMCPY just adding the 2D slot configuration.
558558 */
559− /* Fall through */
559+ fallthrough;
560560 case IMXDMA_DESC_MEMCPY:
561561 imx_dmav1_writel(imxdma, d->src, DMA_SAR(imxdmac->channel));
562562 imx_dmav1_writel(imxdma, d->dest, DMA_DAR(imxdmac->channel));
drivers/dma/iop-adma.h+6−6
@@ -496,7 +496,7 @@ iop3xx_desc_init_xor(struct iop3xx_desc_aau *hw_desc, int src_cnt, · 495 unmodified lines
496496 }
497497 hw_desc->src_edc[AAU_EDCR2_IDX].e_desc_ctrl = edcr;
498498 src_cnt = 24;
499− /* fall through */
499+ fallthrough;
500500 case 17 ... 24:
501501 if (!u_desc_ctrl.field.blk_ctrl) {
502502 hw_desc->src_edc[AAU_EDCR2_IDX].e_desc_ctrl = 0;
@@ -510,7 +510,7 @@ iop3xx_desc_init_xor(struct iop3xx_desc_aau *hw_desc, int src_cnt, · 7 unmodified lines
510510 }
511511 hw_desc->src_edc[AAU_EDCR1_IDX].e_desc_ctrl = edcr;
512512 src_cnt = 16;
513− /* fall through */
513+ fallthrough;
514514 case 9 ... 16:
515515 if (!u_desc_ctrl.field.blk_ctrl)
516516 u_desc_ctrl.field.blk_ctrl = 0x2; /* use EDCR0 */
@@ -522,7 +522,7 @@ iop3xx_desc_init_xor(struct iop3xx_desc_aau *hw_desc, int src_cnt, · 5 unmodified lines
522522 }
523523 hw_desc->src_edc[AAU_EDCR0_IDX].e_desc_ctrl = edcr;
524524 src_cnt = 8;
525− /* fall through */
525+ fallthrough;
526526 case 2 ... 8:
527527 shift = 1;
528528 for (i = 0; i < src_cnt; i++) {
@@ -602,19 +602,19 @@ iop_desc_init_null_xor(struct iop_adma_desc_slot *desc, int src_cnt, · 73 unmodified lines
602602 case 25 ... 32:
603603 u_desc_ctrl.field.blk_ctrl = 0x3; /* use EDCR[2:0] */
604604 hw_desc->src_edc[AAU_EDCR2_IDX].e_desc_ctrl = 0;
605− /* fall through */
605+ fallthrough;
606606 case 17 ... 24:
607607 if (!u_desc_ctrl.field.blk_ctrl) {
608608 hw_desc->src_edc[AAU_EDCR2_IDX].e_desc_ctrl = 0;
609609 u_desc_ctrl.field.blk_ctrl = 0x3; /* use EDCR[2:0] */
610610 }
611611 hw_desc->src_edc[AAU_EDCR1_IDX].e_desc_ctrl = 0;
612− /* fall through */
612+ fallthrough;
613613 case 9 ... 16:
614614 if (!u_desc_ctrl.field.blk_ctrl)
615615 u_desc_ctrl.field.blk_ctrl = 0x2; /* use EDCR0 */
616616 hw_desc->src_edc[AAU_EDCR0_IDX].e_desc_ctrl = 0;
617− /* fall through */
617+ fallthrough;
618618 case 1 ... 8:
619619 if (!u_desc_ctrl.field.blk_ctrl && src_cnt > 4)
620620 u_desc_ctrl.field.blk_ctrl = 0x1; /* use mini-desc */
drivers/dma/nbpfaxi.c+1−1
@@ -483,7 +483,7 @@ static size_t nbpf_xfer_size(struct nbpf_device *nbpf, · 482 unmodified lines
483483
484484 default:
485485 pr_warn("%s(): invalid bus width %u\n", __func__, width);
486− /* fall through */
486+ fallthrough;
487487 case DMA_SLAVE_BUSWIDTH_1_BYTE:
488488 size = burst;
489489 }
drivers/dma/of-dma.c+4−4
@@ -71,12 +71,12 @@ static struct dma_chan *of_dma_router_xlate(struct of_phandle_args *dma_spec, · 70 unmodified lines
7171 return NULL;
7272
7373 chan = ofdma_target->of_dma_xlate(&dma_spec_target, ofdma_target);
74− if (chan) {
75− chan->router = ofdma->dma_router;
76− chan->route_data = route_data;
77− } else {
74+ if (IS_ERR_OR_NULL(chan)) {
7875 ofdma->dma_router->route_free(ofdma->dma_router->dev,
7976 route_data);
77+ } else {
78+ chan->router = ofdma->dma_router;
79+ chan->route_data = route_data;
8080 }
8181
8282 /*
drivers/dma/pl330.c+4−8
@@ -1061,16 +1061,16 @@ static bool _start(struct pl330_thread *thrd) · 1060 unmodified lines
10611061
10621062 if (_state(thrd) == PL330_STATE_KILLING)
10631063 UNTIL(thrd, PL330_STATE_STOPPED)
1064− /* fall through */
1064+ fallthrough;
10651065
10661066 case PL330_STATE_FAULTING:
10671067 _stop(thrd);
1068− /* fall through */
1068+ fallthrough;
10691069
10701070 case PL330_STATE_KILLING:
10711071 case PL330_STATE_COMPLETING:
10721072 UNTIL(thrd, PL330_STATE_STOPPED)
1073− /* fall through */
1073+ fallthrough;
10741074
10751075 case PL330_STATE_STOPPED:
10761076 return _trigger(thrd);
@@ -1121,7 +1121,6 @@ static u32 _emit_load(unsigned int dry_run, u8 buf[], · 44 unmodified lines
11211121
11221122 switch (direction) {
11231123 case DMA_MEM_TO_MEM:
1124− /* fall through */
11251124 case DMA_MEM_TO_DEV:
11261125 off += _emit_LD(dry_run, &buf[off], cond);
11271126 break;
@@ -1155,7 +1154,6 @@ static inline u32 _emit_store(unsigned int dry_run, u8 buf[], · 27 unmodified lines
11551154
11561155 switch (direction) {
11571156 case DMA_MEM_TO_MEM:
1158− /* fall through */
11591157 case DMA_DEV_TO_MEM:
11601158 off += _emit_ST(dry_run, &buf[off], cond);
11611159 break;
@@ -1216,7 +1214,6 @@ static int _bursts(struct pl330_dmac *pl330, unsigned dry_run, u8 buf[], · 54 unmodified lines
12161214
12171215 switch (pxs->desc->rqtype) {
12181216 case DMA_MEM_TO_DEV:
1219− /* fall through */
12201217 case DMA_DEV_TO_MEM:
12211218 off += _ldst_peripheral(pl330, dry_run, &buf[off], pxs, cyc,
12221219 cond);
@@ -1266,7 +1263,6 @@ static int _dregs(struct pl330_dmac *pl330, unsigned int dry_run, u8 buf[], · 43 unmodified lines
12661263
12671264 switch (pxs->desc->rqtype) {
12681265 case DMA_MEM_TO_DEV:
1269− /* fall through */
12701266 case DMA_DEV_TO_MEM:
12711267 off += _emit_MOV(dry_run, &buf[off], CCR, dregs_ccr);
12721268 off += _ldst_peripheral(pl330, dry_run, &buf[off], pxs, 1,
@@ -2801,6 +2797,7 @@ pl330_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dst, · 1528 unmodified lines
28012797 while (burst != (1 << desc->rqcfg.brst_size))
28022798 desc->rqcfg.brst_size++;
28032799
2800+ desc->rqcfg.brst_len = get_burst_len(desc, len);
28042801 /*
28052802 * If burst size is smaller than bus width then make sure we only
28062803 * transfer one at a time to avoid a burst stradling an MFIFO entry.
@@ -2808,7 +2805,6 @@ pl330_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dst, · 1 unmodified line
28082805 if (desc->rqcfg.brst_size * 8 < pl330->pcfg.data_bus_width)
28092806 desc->rqcfg.brst_len = 1;
28102807
2811− desc->rqcfg.brst_len = get_burst_len(desc, len);
28122808 desc->bytes_requested = len;
28132809
28142810 desc->txd.flags = flags;
drivers/dma/sh/shdma-base.c+1−1
@@ -383,7 +383,7 @@ static dma_async_tx_callback __ld_cleanup(struct shdma_chan *schan, bool all) · 382 unmodified lines
383383 switch (desc->mark) {
384384 case DESC_COMPLETED:
385385 desc->mark = DESC_WAITING;
386− /* Fall through */
386+ fallthrough;
387387 case DESC_WAITING:
388388 if (head_acked)
389389 async_tx_ack(&desc->async_tx);
drivers/dma/ti/k3-udma.c+5−5
@@ -2059,9 +2059,9 @@ udma_prep_slave_sg_tr(struct udma_chan *uc, struct scatterlist *sgl, · 2058 unmodified lines
20592059 return NULL;
20602060 }
20612061
2062− cppi5_tr_init(&tr_req[i].flags, CPPI5_TR_TYPE1, false, false,
2063− CPPI5_TR_EVENT_SIZE_COMPLETION, 0);
2064− cppi5_tr_csf_set(&tr_req[i].flags, CPPI5_TR_CSF_SUPR_EVT);
2062+ cppi5_tr_init(&tr_req[tr_idx].flags, CPPI5_TR_TYPE1, false,
2063+ false, CPPI5_TR_EVENT_SIZE_COMPLETION, 0);
2064+ cppi5_tr_csf_set(&tr_req[tr_idx].flags, CPPI5_TR_CSF_SUPR_EVT);
20652065
20662066 tr_req[tr_idx].addr = sg_addr;
20672067 tr_req[tr_idx].icnt0 = tr0_cnt0;
@@ -3101,14 +3101,14 @@ static struct udma_match_data am654_main_data = { · 1033 unmodified lines
31013101 .psil_base = 0x1000,
31023102 .enable_memcpy_support = true,
31033103 .statictr_z_mask = GENMASK(11, 0),
3104− .rchan_oes_offset = 0x2000,
3104+ .rchan_oes_offset = 0x200,
31053105 };
31063106
31073107 static struct udma_match_data am654_mcu_data = {
31083108 .psil_base = 0x6000,
31093109 .enable_memcpy_support = false,
31103110 .statictr_z_mask = GENMASK(11, 0),
3111− .rchan_oes_offset = 0x2000,
3111+ .rchan_oes_offset = 0x200,
31123112 };
31133113
31143114 static struct udma_match_data j721e_main_data = {
drivers/edac/amd64_edac.c+1−1
@@ -3375,7 +3375,7 @@ static struct amd64_family_type *per_family_init(struct amd64_pvt *pvt) · 3374 unmodified lines
33753375 pvt->ops = &family_types[F17_M70H_CPUS].ops;
33763376 break;
33773377 }
3378− /* fall through */
3378+ fallthrough;
33793379 case 0x18:
33803380 fam_type = &family_types[F17_CPUS];
33813381 pvt->ops = &family_types[F17_CPUS].ops;
drivers/edac/ghes_edac.c+6−4
@@ -55,6 +55,8 @@ static DEFINE_SPINLOCK(ghes_lock); · 54 unmodified lines
5555 static bool __read_mostly force_load;
5656 module_param(force_load, bool, 0);
5757
58+static bool system_scanned;
59+
5860 /* Memory Device - Type 17 of SMBIOS spec */
5961 struct memdev_dmi_entry {
6062 u8 type;
@@ -225,14 +227,12 @@ static void enumerate_dimms(const struct dmi_header *dh, void *arg) · 164 unmodified lines
225227
226228 static void ghes_scan_system(void)
227229 {
228− static bool scanned;
229−
230− if (scanned)
230+ if (system_scanned)
231231 return;
232232
233233 dmi_walk(enumerate_dimms, &ghes_hw);
234234
235− scanned = true;
235+ system_scanned = true;
236236 }
237237
238238 void ghes_edac_report_mem_error(int sev, struct cper_sec_mem_err *mem_err)
@@ -631,6 +631,8 @@ void ghes_edac_unregister(struct ghes *ghes) · 392 unmodified lines
631631
632632 mutex_lock(&ghes_reg_mutex);
633633
634+ system_scanned = false;
635+
634636 if (!refcount_dec_and_test(&ghes_refcount))
635637 goto unlock;
636638
drivers/edac/i7core_edac.c+2−2
@@ -1710,9 +1710,9 @@ static void i7core_mce_output_error(struct mem_ctl_info *mci, · 1709 unmodified lines
17101710 if (uncorrected_error) {
17111711 core_err_cnt = 1;
17121712 if (ripv)
1713− tp_event = HW_EVENT_ERR_FATAL;
1714− else
17151713 tp_event = HW_EVENT_ERR_UNCORRECTED;
1714+ else
1715+ tp_event = HW_EVENT_ERR_FATAL;
17161716 } else {
17171717 tp_event = HW_EVENT_ERR_CORRECTED;
17181718 }
drivers/edac/pnd2_edac.c+2−2
@@ -198,7 +198,7 @@ static int apl_rd_reg(int port, int off, int op, void *data, size_t sz, char *na · 197 unmodified lines
198198 switch (sz) {
199199 case 8:
200200 ret = _apl_rd_reg(port, off + 4, op, (u32 *)(data + 4));
201− /* fall through */
201+ fallthrough;
202202 case 4:
203203 ret |= _apl_rd_reg(port, off, op, (u32 *)data);
204204 pnd2_printk(KERN_DEBUG, "%s=%x%08x ret=%d\n", name,
@@ -1155,7 +1155,7 @@ static void pnd2_mce_output_error(struct mem_ctl_info *mci, const struct mce *m, · 950 unmodified lines
11551155 u32 optypenum = GET_BITFIELD(m->status, 4, 6);
11561156 int rc;
11571157
1158− tp_event = uc_err ? (ripv ? HW_EVENT_ERR_FATAL : HW_EVENT_ERR_UNCORRECTED) :
1158+ tp_event = uc_err ? (ripv ? HW_EVENT_ERR_UNCORRECTED : HW_EVENT_ERR_FATAL) :
11591159 HW_EVENT_ERR_CORRECTED;
11601160
11611161 /*
drivers/edac/sb_edac.c+2−2
@@ -2982,9 +2982,9 @@ static void sbridge_mce_output_error(struct mem_ctl_info *mci, · 2981 unmodified lines
29822982 if (uncorrected_error) {
29832983 core_err_cnt = 1;
29842984 if (ripv) {
2985− tp_event = HW_EVENT_ERR_FATAL;
2986− } else {
29872985 tp_event = HW_EVENT_ERR_UNCORRECTED;
2986+ } else {
2987+ tp_event = HW_EVENT_ERR_FATAL;
29882988 }
29892989 } else {
29902990 tp_event = HW_EVENT_ERR_CORRECTED;
drivers/edac/skx_common.c+2−2
@@ -493,9 +493,9 @@ static void skx_mce_output_error(struct mem_ctl_info *mci, · 492 unmodified lines
493493 if (uncorrected_error) {
494494 core_err_cnt = 1;
495495 if (ripv) {
496− tp_event = HW_EVENT_ERR_FATAL;
497− } else {
498496 tp_event = HW_EVENT_ERR_UNCORRECTED;
497+ } else {
498+ tp_event = HW_EVENT_ERR_FATAL;
499499 }
500500 } else {
501501 tp_event = HW_EVENT_ERR_CORRECTED;
drivers/firewire/core-device.c+1−1
@@ -957,7 +957,7 @@ static void set_broadcast_channel(struct fw_device *device, int generation) · 956 unmodified lines
957957 device->bc_implemented = BC_IMPLEMENTED;
958958 break;
959959 }
960− /* else, fall through - to case address error */
960+ fallthrough; /* to case address error */
961961 case RCODE_ADDRESS_ERROR:
962962 device->bc_implemented = BC_UNIMPLEMENTED;
963963 }
drivers/firewire/core-iso.c+1−1
@@ -277,7 +277,7 @@ static int manage_channel(struct fw_card *card, int irm_id, int generation, · 276 unmodified lines
277277 if ((data[0] & bit) == (data[1] & bit))
278278 continue;
279279
280− /* fall through - It's a 1394-1995 IRM, retry. */
280+ fallthrough; /* It's a 1394-1995 IRM, retry */
281281 default:
282282 if (retry) {
283283 retry--;
drivers/firewire/core-topology.c+1−1
@@ -54,7 +54,7 @@ static u32 *count_ports(u32 *sid, int *total_port_count, int *child_port_count) · 53 unmodified lines
5454 switch (port_type) {
5555 case SELFID_PORT_CHILD:
5656 (*child_port_count)++;
57− /* fall through */
57+ fallthrough;
5858 case SELFID_PORT_PARENT:
5959 case SELFID_PORT_NCONN:
6060 (*total_port_count)++;
drivers/firewire/core-transaction.c+2−2
@@ -1097,14 +1097,14 @@ static void handle_registers(struct fw_card *card, struct fw_request *request, · 1096 unmodified lines
10971097 rcode = RCODE_ADDRESS_ERROR;
10981098 break;
10991099 }
1100− /* else fall through */
1100+ fallthrough;
11011101
11021102 case CSR_NODE_IDS:
11031103 /*
11041104 * per IEEE 1394-2008 8.3.22.3, not IEEE 1394.1-2004 3.2.8
11051105 * and 9.6, but interoperable with IEEE 1394.1-2004 bridges
11061106 */
1107− /* fall through */
1107+ fallthrough;
11081108
11091109 case CSR_STATE_CLEAR:
11101110 case CSR_STATE_SET:
drivers/firewire/ohci.c+2−2
@@ -1495,7 +1495,7 @@ static int handle_at_packet(struct context *context, · 1494 unmodified lines
14951495 packet->ack = RCODE_GENERATION;
14961496 break;
14971497 }
1498− /* fall through */
1498+ fallthrough;
14991499
15001500 default:
15011501 packet->ack = RCODE_SEND_ERROR;
@@ -3054,7 +3054,7 @@ static int ohci_start_iso(struct fw_iso_context *base, · 1552 unmodified lines
30543054
30553055 case FW_ISO_CONTEXT_RECEIVE_MULTICHANNEL:
30563056 control |= IR_CONTEXT_BUFFER_FILL|IR_CONTEXT_MULTI_CHANNEL_MODE;
3057− /* fall through */
3057+ fallthrough;
30583058 case FW_ISO_CONTEXT_RECEIVE:
30593059 index = ctx - ohci->ir_context_list;
30603060 match = (tags << 28) | (sync << 8) | ctx->base.channel;
drivers/firmware/efi/efi.c+2−0
@@ -381,6 +381,7 @@ static int __init efisubsys_init(void) · 380 unmodified lines
381381 efi_kobj = kobject_create_and_add("efi", firmware_kobj);
382382 if (!efi_kobj) {
383383 pr_err("efi: Firmware registration failed.\n");
384+ destroy_workqueue(efi_rts_wq);
384385 return -ENOMEM;
385386 }
386387
@@ -424,6 +425,7 @@ err_unregister: · 37 unmodified lines
424425 generic_ops_unregister();
425426 err_put:
426427 kobject_put(efi_kobj);
428+ destroy_workqueue(efi_rts_wq);
427429 return error;
428430 }
429431
drivers/firmware/efi/libstub/efi-stub-helper.c+10−2
@@ -187,20 +187,28 @@ int efi_printk(const char *fmt, ...) · 186 unmodified lines
187187 */
188188 efi_status_t efi_parse_options(char const *cmdline)
189189 {
190− size_t len = strlen(cmdline) + 1;
190+ size_t len;
191191 efi_status_t status;
192192 char *str, *buf;
193193
194+ if (!cmdline)
195+ return EFI_SUCCESS;
196+
197+ len = strnlen(cmdline, COMMAND_LINE_SIZE - 1) + 1;
194198 status = efi_bs_call(allocate_pool, EFI_LOADER_DATA, len, (void **)&buf);
195199 if (status != EFI_SUCCESS)
196200 return status;
197201
198− str = skip_spaces(memcpy(buf, cmdline, len));
202+ memcpy(buf, cmdline, len - 1);
203+ buf[len - 1] = '\0';
204+ str = skip_spaces(buf);
199205
200206 while (*str) {
201207 char *param, *val;
202208
203209 str = next_arg(str, &param, &val);
210+ if (!val && !strcmp(param, "--"))
211+ break;
204212
205213 if (!strcmp(param, "nokaslr")) {
206214 efi_nokaslr = true;
drivers/firmware/ti_sci.c+68−87
@@ -64,22 +64,6 @@ struct ti_sci_xfers_info { · 63 unmodified lines
6464 spinlock_t xfer_lock;
6565 };
6666
67−/**
68− * struct ti_sci_rm_type_map - Structure representing TISCI Resource
69− * management representation of dev_ids.
70− * @dev_id: TISCI device ID
71− * @type: Corresponding id as identified by TISCI RM.
72− *
73− * Note: This is used only as a work around for using RM range apis
74− * for AM654 SoC. For future SoCs dev_id will be used as type
75− * for RM range APIs. In order to maintain ABI backward compatibility
76− * type is not being changed for AM654 SoC.
77− */
78−struct ti_sci_rm_type_map {
79− u32 dev_id;
80− u16 type;
81−};
82−
8367 /**
8468 * struct ti_sci_desc - Description of SoC integration
8569 * @default_host_id: Host identifier representing the compute entity
@@ -87,14 +71,12 @@ struct ti_sci_rm_type_map { · 1 unmodified line
8771 * @max_msgs: Maximum number of messages that can be pending
8872 * simultaneously in the system
8973 * @max_msg_size: Maximum size of data per message that can be handled.
90− * @rm_type_map: RM resource type mapping structure.
9174 */
9275 struct ti_sci_desc {
9376 u8 default_host_id;
9477 int max_rx_timeout_ms;
9578 int max_msgs;
9679 int max_msg_size;
97− struct ti_sci_rm_type_map *rm_type_map;
9880 };
9981
10082 /**
@@ -1710,33 +1692,6 @@ fail: · 1609 unmodified lines
17101692 return ret;
17111693 }
17121694
1713−static int ti_sci_get_resource_type(struct ti_sci_info *info, u16 dev_id,
1714− u16 *type)
1715−{
1716− struct ti_sci_rm_type_map *rm_type_map = info->desc->rm_type_map;
1717− bool found = false;
1718− int i;
1719−
1720− /* If map is not provided then assume dev_id is used as type */
1721− if (!rm_type_map) {
1722− *type = dev_id;
1723− return 0;
1724− }
1725−
1726− for (i = 0; rm_type_map[i].dev_id; i++) {
1727− if (rm_type_map[i].dev_id == dev_id) {
1728− *type = rm_type_map[i].type;
1729− found = true;
1730− break;
1731− }
1732− }
1733−
1734− if (!found)
1735− return -EINVAL;
1736−
1737− return 0;
1738−}
1739−
17401695 /**
17411696 * ti_sci_get_resource_range - Helper to get a range of resources assigned
17421697 * to a host. Resource is uniquely identified by
@@ -1760,7 +1715,6 @@ static int ti_sci_get_resource_range(const struct ti_sci_handle *handle, · 17 unmodified lines
17601715 struct ti_sci_xfer *xfer;
17611716 struct ti_sci_info *info;
17621717 struct device *dev;
1763− u16 type;
17641718 int ret = 0;
17651719
17661720 if (IS_ERR(handle))
@@ -1780,15 +1734,9 @@ static int ti_sci_get_resource_range(const struct ti_sci_handle *handle, · 13 unmodified lines
17801734 return ret;
17811735 }
17821736
1783− ret = ti_sci_get_resource_type(info, dev_id, &type);
1784− if (ret) {
1785− dev_err(dev, "rm type lookup failed for %u\n", dev_id);
1786− goto fail;
1787− }
1788−
17891737 req = (struct ti_sci_msg_req_get_resource_range *)xfer->xfer_buf;
17901738 req->secondary_host = s_host;
1791− req->type = type & MSG_RM_RESOURCE_TYPE_MASK;
1739+ req->type = dev_id & MSG_RM_RESOURCE_TYPE_MASK;
17921740 req->subtype = subtype & MSG_RM_RESOURCE_SUBTYPE_MASK;
17931741
17941742 ret = ti_sci_do_xfer(info, xfer);
@@ -3260,61 +3208,50 @@ u32 ti_sci_get_num_resources(struct ti_sci_resource *res) · 1465 unmodified lines
32603208 EXPORT_SYMBOL_GPL(ti_sci_get_num_resources);
32613209
32623210 /**
3263− * devm_ti_sci_get_of_resource() - Get a TISCI resource assigned to a device
3211+ * devm_ti_sci_get_resource_sets() - Get a TISCI resources assigned to a device
32643212 * @handle: TISCI handle
32653213 * @dev: Device pointer to which the resource is assigned
32663214 * @dev_id: TISCI device id to which the resource is assigned
3267− * @of_prop: property name by which the resource are represented
3215+ * @sub_types: Array of sub_types assigned corresponding to device
3216+ * @sets: Number of sub_types
32683217 *
32693218 * Return: Pointer to ti_sci_resource if all went well else appropriate
32703219 * error pointer.
32713220 */
3272−struct ti_sci_resource *
3273−devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle,
3274− struct device *dev, u32 dev_id, char *of_prop)
3221+static struct ti_sci_resource *
3222+devm_ti_sci_get_resource_sets(const struct ti_sci_handle *handle,
3223+ struct device *dev, u32 dev_id, u32 *sub_types,
3224+ u32 sets)
32753225 {
32763226 struct ti_sci_resource *res;
32773227 bool valid_set = false;
3278− u32 resource_subtype;
32793228 int i, ret;
32803229
32813230 res = devm_kzalloc(dev, sizeof(*res), GFP_KERNEL);
32823231 if (!res)
32833232 return ERR_PTR(-ENOMEM);
32843233
3285− ret = of_property_count_elems_of_size(dev_of_node(dev), of_prop,
3286− sizeof(u32));
3287− if (ret < 0) {
3288− dev_err(dev, "%s resource type ids not available\n", of_prop);
3289− return ERR_PTR(ret);
3290− }
3291− res->sets = ret;
3292−
3234+ res->sets = sets;
32933235 res->desc = devm_kcalloc(dev, res->sets, sizeof(*res->desc),
32943236 GFP_KERNEL);
32953237 if (!res->desc)
32963238 return ERR_PTR(-ENOMEM);
32973239
32983240 for (i = 0; i < res->sets; i++) {
3299− ret = of_property_read_u32_index(dev_of_node(dev), of_prop, i,
3300− &resource_subtype);
3301− if (ret)
3302− return ERR_PTR(-EINVAL);
3303−
33043241 ret = handle->ops.rm_core_ops.get_range(handle, dev_id,
3305− resource_subtype,
3242+ sub_types[i],
33063243 &res->desc[i].start,
33073244 &res->desc[i].num);
33083245 if (ret) {
33093246 dev_dbg(dev, "dev = %d subtype %d not allocated for this host\n",
3310− dev_id, resource_subtype);
3247+ dev_id, sub_types[i]);
33113248 res->desc[i].start = 0;
33123249 res->desc[i].num = 0;
33133250 continue;
33143251 }
33153252
33163253 dev_dbg(dev, "dev = %d, subtype = %d, start = %d, num = %d\n",
3317− dev_id, resource_subtype, res->desc[i].start,
3254+ dev_id, sub_types[i], res->desc[i].start,
33183255 res->desc[i].num);
33193256
33203257 valid_set = true;
@@ -3332,6 +3269,62 @@ devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle, · 11 unmodified lines
33323269 return ERR_PTR(-EINVAL);
33333270 }
33343271
3272+/**
3273+ * devm_ti_sci_get_of_resource() - Get a TISCI resource assigned to a device
3274+ * @handle: TISCI handle
3275+ * @dev: Device pointer to which the resource is assigned
3276+ * @dev_id: TISCI device id to which the resource is assigned
3277+ * @of_prop: property name by which the resource are represented
3278+ *
3279+ * Return: Pointer to ti_sci_resource if all went well else appropriate
3280+ * error pointer.
3281+ */
3282+struct ti_sci_resource *
3283+devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle,
3284+ struct device *dev, u32 dev_id, char *of_prop)
3285+{
3286+ struct ti_sci_resource *res;
3287+ u32 *sub_types;
3288+ int sets;
3289+
3290+ sets = of_property_count_elems_of_size(dev_of_node(dev), of_prop,
3291+ sizeof(u32));
3292+ if (sets < 0) {
3293+ dev_err(dev, "%s resource type ids not available\n", of_prop);
3294+ return ERR_PTR(sets);
3295+ }
3296+
3297+ sub_types = kcalloc(sets, sizeof(*sub_types), GFP_KERNEL);
3298+ if (!sub_types)
3299+ return ERR_PTR(-ENOMEM);
3300+
3301+ of_property_read_u32_array(dev_of_node(dev), of_prop, sub_types, sets);
3302+ res = devm_ti_sci_get_resource_sets(handle, dev, dev_id, sub_types,
3303+ sets);
3304+
3305+ kfree(sub_types);
3306+ return res;
3307+}
3308+EXPORT_SYMBOL_GPL(devm_ti_sci_get_of_resource);
3309+
3310+/**
3311+ * devm_ti_sci_get_resource() - Get a resource range assigned to the device
3312+ * @handle: TISCI handle
3313+ * @dev: Device pointer to which the resource is assigned
3314+ * @dev_id: TISCI device id to which the resource is assigned
3315+ * @suub_type: TISCI resource subytpe representing the resource.
3316+ *
3317+ * Return: Pointer to ti_sci_resource if all went well else appropriate
3318+ * error pointer.
3319+ */
3320+struct ti_sci_resource *
3321+devm_ti_sci_get_resource(const struct ti_sci_handle *handle, struct device *dev,
3322+ u32 dev_id, u32 sub_type)
3323+{
3324+ return devm_ti_sci_get_resource_sets(handle, dev, dev_id, &sub_type, 1);
3325+}
3326+EXPORT_SYMBOL_GPL(devm_ti_sci_get_resource);
3327+
33353328 static int tisci_reboot_handler(struct notifier_block *nb, unsigned long mode,
33363329 void *cmd)
33373330 {
@@ -3352,17 +3345,6 @@ static const struct ti_sci_desc ti_sci_pmmc_k2g_desc = { · 14 unmodified lines
33523345 /* Limited by MBOX_TX_QUEUE_LEN. K2G can handle upto 128 messages! */
33533346 .max_msgs = 20,
33543347 .max_msg_size = 64,
3355− .rm_type_map = NULL,
3356−};
3357−
3358−static struct ti_sci_rm_type_map ti_sci_am654_rm_type_map[] = {
3359− {.dev_id = 56, .type = 0x00b}, /* GIC_IRQ */
3360− {.dev_id = 179, .type = 0x000}, /* MAIN_NAV_UDMASS_IA0 */
3361− {.dev_id = 187, .type = 0x009}, /* MAIN_NAV_RA */
3362− {.dev_id = 188, .type = 0x006}, /* MAIN_NAV_UDMAP */
3363− {.dev_id = 194, .type = 0x007}, /* MCU_NAV_UDMAP */
3364− {.dev_id = 195, .type = 0x00a}, /* MCU_NAV_RA */
3365− {.dev_id = 0, .type = 0x000}, /* end of table */
33663348 };
33673349
33683350 /* Description for AM654 */
@@ -3373,7 +3355,6 @@ static const struct ti_sci_desc ti_sci_pmmc_am654_desc = { · 4 unmodified lines
33733355 /* Limited by MBOX_TX_QUEUE_LEN. K2G can handle upto 128 messages! */
33743356 .max_msgs = 20,
33753357 .max_msg_size = 60,
3376− .rm_type_map = ti_sci_am654_rm_type_map,
33773358 };
33783359
33793360 static const struct of_device_id ti_sci_of_match[] = {
drivers/gpio/gpio-aspeed-sgpio.c+3−3
@@ -303,16 +303,16 @@ static int aspeed_sgpio_set_type(struct irq_data *d, unsigned int type) · 302 unmodified lines
303303 switch (type & IRQ_TYPE_SENSE_MASK) {
304304 case IRQ_TYPE_EDGE_BOTH:
305305 type2 |= bit;
306− /* fall through */
306+ fallthrough;
307307 case IRQ_TYPE_EDGE_RISING:
308308 type0 |= bit;
309− /* fall through */
309+ fallthrough;
310310 case IRQ_TYPE_EDGE_FALLING:
311311 handler = handle_edge_irq;
312312 break;
313313 case IRQ_TYPE_LEVEL_HIGH:
314314 type0 |= bit;
315− /* fall through */
315+ fallthrough;
316316 case IRQ_TYPE_LEVEL_LOW:
317317 type1 |= bit;
318318 handler = handle_level_irq;
drivers/gpio/gpio-aspeed.c+3−3
@@ -611,16 +611,16 @@ static int aspeed_gpio_set_type(struct irq_data *d, unsigned int type) · 610 unmodified lines
611611 switch (type & IRQ_TYPE_SENSE_MASK) {
612612 case IRQ_TYPE_EDGE_BOTH:
613613 type2 |= bit;
614− /* fall through */
614+ fallthrough;
615615 case IRQ_TYPE_EDGE_RISING:
616616 type0 |= bit;
617− /* fall through */
617+ fallthrough;
618618 case IRQ_TYPE_EDGE_FALLING:
619619 handler = handle_edge_irq;
620620 break;
621621 case IRQ_TYPE_LEVEL_HIGH:
622622 type0 |= bit;
623− /* fall through */
623+ fallthrough;
624624 case IRQ_TYPE_LEVEL_LOW:
625625 type1 |= bit;
626626 handler = handle_level_irq;
drivers/gpio/gpio-ath79.c+1−1
@@ -129,7 +129,7 @@ static int ath79_gpio_irq_set_type(struct irq_data *data, · 128 unmodified lines
129129
130130 case IRQ_TYPE_LEVEL_HIGH:
131131 polarity |= mask;
132− /* fall through */
132+ fallthrough;
133133 case IRQ_TYPE_LEVEL_LOW:
134134 type |= mask;
135135 break;
drivers/gpio/gpio-eic-sprd.c+1−3
@@ -617,14 +617,12 @@ static int sprd_eic_probe(struct platform_device *pdev) · 616 unmodified lines
617617 sprd_eic->chip.free = sprd_eic_free;
618618 sprd_eic->chip.set_config = sprd_eic_set_config;
619619 sprd_eic->chip.set = sprd_eic_set;
620− /* fall-through */
620+ fallthrough;
621621 case SPRD_EIC_ASYNC:
622− /* fall-through */
623622 case SPRD_EIC_SYNC:
624623 sprd_eic->chip.get = sprd_eic_get;
625624 break;
626625 case SPRD_EIC_LATCH:
627− /* fall-through */
628626 default:
629627 break;
630628 }
drivers/gpio/gpio-stmpe.c+2−2
@@ -308,7 +308,7 @@ static void stmpe_dbg_show_one(struct seq_file *s, · 307 unmodified lines
308308 if (ret < 0)
309309 return;
310310 edge_det = !!(ret & mask);
311− /* fall through */
311+ fallthrough;
312312 case STMPE1801:
313313 rise_reg = stmpe->regs[STMPE_IDX_GPRER_LSB + bank];
314314 fall_reg = stmpe->regs[STMPE_IDX_GPFER_LSB + bank];
@@ -321,7 +321,7 @@ static void stmpe_dbg_show_one(struct seq_file *s, · 6 unmodified lines
321321 if (ret < 0)
322322 return;
323323 fall = !!(ret & mask);
324− /* fall through */
324+ fallthrough;
325325 case STMPE801:
326326 case STMPE1600:
327327 irqen_reg = stmpe->regs[STMPE_IDX_IEGPIOR_LSB + bank];
drivers/gpio/gpiolib-acpi.c+1−1
@@ -1264,7 +1264,7 @@ static int acpi_gpio_package_count(const union acpi_object *obj) · 1263 unmodified lines
12641264 switch (element->type) {
12651265 case ACPI_TYPE_LOCAL_REFERENCE:
12661266 element += 3;
1267− /* Fallthrough */
1267+ fallthrough;
12681268 case ACPI_TYPE_INTEGER:
12691269 element++;
12701270 count++;
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10_3.c+1−1
@@ -152,7 +152,7 @@ static uint32_t get_sdma_rlc_reg_offset(struct amdgpu_device *adev, · 151 unmodified lines
152152 dev_warn(adev->dev,
153153 "Invalid sdma engine id (%d), using engine id 0\n",
154154 engine_id);
155− /* fall through */
155+ fallthrough;
156156 case 0:
157157 sdma_engine_reg_base = SOC15_REG_OFFSET(SDMA0, 0,
158158 mmSDMA0_RLC0_RB_CNTL) - mmSDMA0_RLC0_RB_CNTL;
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c+22−9
@@ -195,19 +195,32 @@ static uint32_t get_sdma_rlc_reg_offset(struct amdgpu_device *adev, · 194 unmodified lines
195195 unsigned int engine_id,
196196 unsigned int queue_id)
197197 {
198− uint32_t sdma_engine_reg_base[2] = {
199− SOC15_REG_OFFSET(SDMA0, 0,
200− mmSDMA0_RLC0_RB_CNTL) - mmSDMA0_RLC0_RB_CNTL,
201− SOC15_REG_OFFSET(SDMA1, 0,
202− mmSDMA1_RLC0_RB_CNTL) - mmSDMA1_RLC0_RB_CNTL
203− };
204− uint32_t retval = sdma_engine_reg_base[engine_id]
198+ uint32_t sdma_engine_reg_base = 0;
199+ uint32_t sdma_rlc_reg_offset;
200+
201+ switch (engine_id) {
202+ default:
203+ dev_warn(adev->dev,
204+ "Invalid sdma engine id (%d), using engine id 0\n",
205+ engine_id);
206+ fallthrough;
207+ case 0:
208+ sdma_engine_reg_base = SOC15_REG_OFFSET(SDMA0, 0,
209+ mmSDMA0_RLC0_RB_CNTL) - mmSDMA0_RLC0_RB_CNTL;
210+ break;
211+ case 1:
212+ sdma_engine_reg_base = SOC15_REG_OFFSET(SDMA1, 0,
213+ mmSDMA1_RLC0_RB_CNTL) - mmSDMA0_RLC0_RB_CNTL;
214+ break;
215+ }
216+
217+ sdma_rlc_reg_offset = sdma_engine_reg_base
205218 + queue_id * (mmSDMA0_RLC1_RB_CNTL - mmSDMA0_RLC0_RB_CNTL);
206219
207220 pr_debug("RLC register offset for SDMA%d RLC%d: 0x%x\n", engine_id,
208− queue_id, retval);
221+ queue_id, sdma_rlc_reg_offset);
209222
210− return retval;
223+ return sdma_rlc_reg_offset;
211224 }
212225
213226 static inline struct v9_mqd *get_mqd(void *mqd)
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c+5−0
@@ -179,6 +179,7 @@ int amdgpu_driver_load_kms(struct drm_device *dev, unsigned long flags) · 178 unmodified lines
179179 case CHIP_VEGA20:
180180 case CHIP_ARCTURUS:
181181 case CHIP_SIENNA_CICHLID:
182+ case CHIP_NAVY_FLOUNDER:
182183 /* enable runpm if runpm=1 */
183184 if (amdgpu_runtime_pm > 0)
184185 adev->runpm = true;
@@ -678,8 +679,12 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file · 493 unmodified lines
678679 * in the bitfields */
679680 if (se_num == AMDGPU_INFO_MMR_SE_INDEX_MASK)
680681 se_num = 0xffffffff;
682+ else if (se_num >= AMDGPU_GFX_MAX_SE)
683+ return -EINVAL;
681684 if (sh_num == AMDGPU_INFO_MMR_SH_INDEX_MASK)
682685 sh_num = 0xffffffff;
686+ else if (sh_num >= AMDGPU_GFX_MAX_SH_PER_SE)
687+ return -EINVAL;
683688
684689 if (info->read_mmr_reg.count > 128)
685690 return -EINVAL;
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c+1−2
@@ -522,8 +522,7 @@ static int psp_asd_load(struct psp_context *psp) · 521 unmodified lines
522522 * add workaround to bypass it for sriov now.
523523 * TODO: add version check to make it common
524524 */
525− if (amdgpu_sriov_vf(psp->adev) ||
526− (psp->adev->asic_type == CHIP_NAVY_FLOUNDER))
525+ if (amdgpu_sriov_vf(psp->adev) || !psp->asd_fw)
527526 return 0;
528527
529528 cmd = kzalloc(sizeof(struct psp_gfx_cmd_resp), GFP_KERNEL);
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c+0−2
@@ -1243,7 +1243,6 @@ void amdgpu_ras_debugfs_remove(struct amdgpu_device *adev, · 1242 unmodified lines
12431243 if (!obj || !obj->ent)
12441244 return;
12451245
1246− debugfs_remove(obj->ent);
12471246 obj->ent = NULL;
12481247 put_obj(obj);
12491248 }
@@ -1257,7 +1256,6 @@ static void amdgpu_ras_debugfs_remove_all(struct amdgpu_device *adev) · 7 unmodified lines
12571256 amdgpu_ras_debugfs_remove(adev, &obj->head);
12581257 }
12591258
1260− debugfs_remove_recursive(con->dir);
12611259 con->dir = NULL;
12621260 }
12631261 /* debugfs end */
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c+1−1
@@ -462,7 +462,7 @@ int amdgpu_vram_mgr_alloc_sgt(struct amdgpu_device *adev, · 461 unmodified lines
462462 unsigned int pages;
463463 int i, r;
464464
465− *sgt = kmalloc(sizeof(*sg), GFP_KERNEL);
465+ *sgt = kmalloc(sizeof(**sgt), GFP_KERNEL);
466466 if (!*sgt)
467467 return -ENOMEM;
468468
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c+2−4
@@ -7263,10 +7263,8 @@ static void gfx_v10_0_update_medium_grain_clock_gating(struct amdgpu_device *ade · 7262 unmodified lines
72637263 def = data = RREG32_SOC15(GC, 0, mmRLC_CGTT_MGCG_OVERRIDE);
72647264 data &= ~(RLC_CGTT_MGCG_OVERRIDE__GRBM_CGTT_SCLK_OVERRIDE_MASK |
72657265 RLC_CGTT_MGCG_OVERRIDE__GFXIP_MGCG_OVERRIDE_MASK |
7266− RLC_CGTT_MGCG_OVERRIDE__GFXIP_MGLS_OVERRIDE_MASK);
7267−
7268− /* only for Vega10 & Raven1 */
7269− data |= RLC_CGTT_MGCG_OVERRIDE__RLC_CGTT_SCLK_OVERRIDE_MASK;
7266+ RLC_CGTT_MGCG_OVERRIDE__GFXIP_MGLS_OVERRIDE_MASK |
7267+ RLC_CGTT_MGCG_OVERRIDE__ENABLE_CGTS_LEGACY_MASK);
72707268
72717269 if (def != data)
72727270 WREG32_SOC15(GC, 0, mmRLC_CGTT_MGCG_OVERRIDE, data);
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c+1−1
@@ -3250,7 +3250,7 @@ static void gfx_v8_0_tiling_mode_table_init(struct amdgpu_device *adev) · 3249 unmodified lines
32503250 dev_warn(adev->dev,
32513251 "Unknown chip type (%d) in function gfx_v8_0_tiling_mode_table_init() falling through to CHIP_CARRIZO\n",
32523252 adev->asic_type);
3253− /* fall through */
3253+ fallthrough;
32543254
32553255 case CHIP_CARRIZO:
32563256 modearray[0] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c+1−0
@@ -691,6 +691,7 @@ static const struct soc15_reg_golden golden_settings_gc_9_4_1_arct[] = · 690 unmodified lines
691691 SOC15_REG_GOLDEN_VALUE(GC, 0, mmTCP_CHAN_STEER_5_ARCT, 0x3ff, 0x135),
692692 SOC15_REG_GOLDEN_VALUE(GC, 0, mmSQ_CONFIG, 0xffffffff, 0x011A0000),
693693 SOC15_REG_GOLDEN_VALUE(GC, 0, mmSQ_FIFO_SIZES, 0xffffffff, 0x00000f00),
694+ SOC15_REG_GOLDEN_VALUE(GC, 0, mmTCP_UTCL1_CNTL1, 0x30000000, 0x30000000)
694695 };
695696
696697 static const struct soc15_reg_rlcg rlcg_access_gc_9_0[] = {
drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c+19−0
@@ -135,6 +135,12 @@ static void gfxhub_v2_1_init_cache_regs(struct amdgpu_device *adev) · 134 unmodified lines
135135 {
136136 uint32_t tmp;
137137
138+ /* These registers are not accessible to VF-SRIOV.
139+ * The PF will program them instead.
140+ */
141+ if (amdgpu_sriov_vf(adev))
142+ return;
143+
138144 /* Setup L2 cache */
139145 tmp = RREG32_SOC15(GC, 0, mmGCVM_L2_CNTL);
140146 tmp = REG_SET_FIELD(tmp, GCVM_L2_CNTL, ENABLE_L2_CACHE, 1);
@@ -190,6 +196,12 @@ static void gfxhub_v2_1_enable_system_domain(struct amdgpu_device *adev) · 49 unmodified lines
190196
191197 static void gfxhub_v2_1_disable_identity_aperture(struct amdgpu_device *adev)
192198 {
199+ /* These registers are not accessible to VF-SRIOV.
200+ * The PF will program them instead.
201+ */
202+ if (amdgpu_sriov_vf(adev))
203+ return;
204+
193205 WREG32_SOC15(GC, 0, mmGCVM_L2_CONTEXT1_IDENTITY_APERTURE_LOW_ADDR_LO32,
194206 0xFFFFFFFF);
195207 WREG32_SOC15(GC, 0, mmGCVM_L2_CONTEXT1_IDENTITY_APERTURE_LOW_ADDR_HI32,
@@ -326,6 +338,13 @@ void gfxhub_v2_1_set_fault_enable_default(struct amdgpu_device *adev, · 130 unmodified lines
326338 bool value)
327339 {
328340 u32 tmp;
341+
342+ /* These registers are not accessible to VF-SRIOV.
343+ * The PF will program them instead.
344+ */
345+ if (amdgpu_sriov_vf(adev))
346+ return;
347+
329348 tmp = RREG32_SOC15(GC, 0, mmGCVM_L2_PROTECTION_FAULT_CNTL);
330349 tmp = REG_SET_FIELD(tmp, GCVM_L2_PROTECTION_FAULT_CNTL,
331350 RANGE_PROTECTION_FAULT_ENABLE_DEFAULT, value);
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c+1−1
@@ -1297,7 +1297,7 @@ static void gmc_v9_0_init_golden_registers(struct amdgpu_device *adev) · 1296 unmodified lines
12971297 case CHIP_VEGA10:
12981298 if (amdgpu_sriov_vf(adev))
12991299 break;
1300− /* fall through */
1300+ fallthrough;
13011301 case CHIP_VEGA20:
13021302 soc15_program_register_sequence(adev,
13031303 golden_settings_mmhub_1_0_0,
drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c+19−0
@@ -134,6 +134,12 @@ static void mmhub_v2_0_init_cache_regs(struct amdgpu_device *adev) · 133 unmodified lines
134134 {
135135 uint32_t tmp;
136136
137+ /* These registers are not accessible to VF-SRIOV.
138+ * The PF will program them instead.
139+ */
140+ if (amdgpu_sriov_vf(adev))
141+ return;
142+
137143 /* Setup L2 cache */
138144 tmp = RREG32_SOC15(MMHUB, 0, mmMMVM_L2_CNTL);
139145 tmp = REG_SET_FIELD(tmp, MMVM_L2_CNTL, ENABLE_L2_CACHE, 1);
@@ -189,6 +195,12 @@ static void mmhub_v2_0_enable_system_domain(struct amdgpu_device *adev) · 49 unmodified lines
189195
190196 static void mmhub_v2_0_disable_identity_aperture(struct amdgpu_device *adev)
191197 {
198+ /* These registers are not accessible to VF-SRIOV.
199+ * The PF will program them instead.
200+ */
201+ if (amdgpu_sriov_vf(adev))
202+ return;
203+
192204 WREG32_SOC15(MMHUB, 0,
193205 mmMMVM_L2_CONTEXT1_IDENTITY_APERTURE_LOW_ADDR_LO32,
194206 0xFFFFFFFF);
@@ -318,6 +330,13 @@ void mmhub_v2_0_gart_disable(struct amdgpu_device *adev) · 123 unmodified lines
318330 void mmhub_v2_0_set_fault_enable_default(struct amdgpu_device *adev, bool value)
319331 {
320332 u32 tmp;
333+
334+ /* These registers are not accessible to VF-SRIOV.
335+ * The PF will program them instead.
336+ */
337+ if (amdgpu_sriov_vf(adev))
338+ return;
339+
321340 tmp = RREG32_SOC15(MMHUB, 0, mmMMVM_L2_PROTECTION_FAULT_CNTL);
322341 tmp = REG_SET_FIELD(tmp, MMVM_L2_PROTECTION_FAULT_CNTL,
323342 RANGE_PROTECTION_FAULT_ENABLE_DEFAULT, value);
drivers/gpu/drm/amd/amdgpu/nv.c+1−0
@@ -364,6 +364,7 @@ nv_asic_reset_method(struct amdgpu_device *adev) · 363 unmodified lines
364364
365365 switch (adev->asic_type) {
366366 case CHIP_SIENNA_CICHLID:
367+ case CHIP_NAVY_FLOUNDER:
367368 return AMD_RESET_METHOD_MODE1;
368369 default:
369370 if (smu_baco_is_support(smu))
drivers/gpu/drm/amd/amdgpu/psp_v11_0.c+1−2
@@ -179,12 +179,11 @@ static int psp_v11_0_init_microcode(struct psp_context *psp) · 178 unmodified lines
179179 }
180180 break;
181181 case CHIP_SIENNA_CICHLID:
182+ case CHIP_NAVY_FLOUNDER:
182183 err = psp_init_ta_microcode(&adev->psp, chip_name);
183184 if (err)
184185 return err;
185186 break;
186− case CHIP_NAVY_FLOUNDER:
187− break;
188187 default:
189188 BUG();
190189 }
drivers/gpu/drm/amd/amdgpu/si_dpm.c+1−1
@@ -6196,7 +6196,7 @@ static void si_request_link_speed_change_before_state_change(struct amdgpu_devic · 6195 unmodified lines
61966196 si_pi->force_pcie_gen = AMDGPU_PCIE_GEN2;
61976197 if (current_link_speed == AMDGPU_PCIE_GEN2)
61986198 break;
6199− /* fall through */
6199+ fallthrough;
62006200 case AMDGPU_PCIE_GEN2:
62016201 if (amdgpu_acpi_pcie_performance_request(adev, PCIE_PERF_REQ_PECI_GEN2, false) == 0)
62026202 break;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c+51−43
@@ -2196,6 +2196,7 @@ void amdgpu_dm_update_connector_after_detect( · 2195 unmodified lines
21962196
21972197 drm_connector_update_edid_property(connector,
21982198 aconnector->edid);
2199+ drm_add_edid_modes(connector, aconnector->edid);
21992200
22002201 if (aconnector->dc_link->aux_mode)
22012202 drm_dp_cec_set_edid(&aconnector->dm_dp_aux.aux,
@@ -2833,12 +2834,18 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev) · 631 unmodified lines
28332834 &dm_atomic_state_funcs);
28342835
28352836 r = amdgpu_display_modeset_create_props(adev);
2836− if (r)
2837+ if (r) {
2838+ dc_release_state(state->context);
2839+ kfree(state);
28372840 return r;
2841+ }
28382842
28392843 r = amdgpu_dm_audio_init(adev);
2840− if (r)
2844+ if (r) {
2845+ dc_release_state(state->context);
2846+ kfree(state);
28412847 return r;
2848+ }
28422849
28432850 return 0;
28442851 }
@@ -2855,6 +2862,8 @@ static void amdgpu_dm_update_backlight_caps(struct amdgpu_display_manager *dm) · 10 unmodified lines
28552862 #if defined(CONFIG_ACPI)
28562863 struct amdgpu_dm_backlight_caps caps;
28572864
2865+ memset(&caps, 0, sizeof(caps));
2866+
28582867 if (dm->backlight_caps.caps_valid)
28592868 return;
28602869
@@ -2893,51 +2902,50 @@ static int set_backlight_via_aux(struct dc_link *link, uint32_t brightness) · 32 unmodified lines
28932902 return rc ? 0 : 1;
28942903 }
28952904
2896−static u32 convert_brightness(const struct amdgpu_dm_backlight_caps *caps,
2897− const uint32_t user_brightness)
2905+static int get_brightness_range(const struct amdgpu_dm_backlight_caps *caps,
2906+ unsigned *min, unsigned *max)
28982907 {
2899− u32 min, max, conversion_pace;
2900− u32 brightness = user_brightness;
2901−
29022908 if (!caps)
2903− goto out;
2909+ return 0;
29042910
2905− if (!caps->aux_support) {
2906− max = caps->max_input_signal;
2907− min = caps->min_input_signal;
2908− /*
2909− * The brightness input is in the range 0-255
2910− * It needs to be rescaled to be between the
2911− * requested min and max input signal
2912− * It also needs to be scaled up by 0x101 to
2913− * match the DC interface which has a range of
2914− * 0 to 0xffff
2915− */
2916− conversion_pace = 0x101;
2917− brightness =
2918− user_brightness
2919− * conversion_pace
2920− * (max - min)
2921− / AMDGPU_MAX_BL_LEVEL
2922− + min * conversion_pace;
2911+ if (caps->aux_support) {
2912+ // Firmware limits are in nits, DC API wants millinits.
2913+ *max = 1000 * caps->aux_max_input_signal;
2914+ *min = 1000 * caps->aux_min_input_signal;
29232915 } else {
2924− /* TODO
2925− * We are doing a linear interpolation here, which is OK but
2926− * does not provide the optimal result. We probably want
2927− * something close to the Perceptual Quantizer (PQ) curve.
2928− */
2929− max = caps->aux_max_input_signal;
2930− min = caps->aux_min_input_signal;
2931−
2932− brightness = (AMDGPU_MAX_BL_LEVEL - user_brightness) * min
2933− + user_brightness * max;
2934− // Multiple the value by 1000 since we use millinits
2935− brightness *= 1000;
2936− brightness = DIV_ROUND_CLOSEST(brightness, AMDGPU_MAX_BL_LEVEL);
2916+ // Firmware limits are 8-bit, PWM control is 16-bit.
2917+ *max = 0x101 * caps->max_input_signal;
2918+ *min = 0x101 * caps->min_input_signal;
29372919 }
2920+ return 1;
2921+}
29382922
2939−out:
2940− return brightness;
2923+static u32 convert_brightness_from_user(const struct amdgpu_dm_backlight_caps *caps,
2924+ uint32_t brightness)
2925+{
2926+ unsigned min, max;
2927+
2928+ if (!get_brightness_range(caps, &min, &max))
2929+ return brightness;
2930+
2931+ // Rescale 0..255 to min..max
2932+ return min + DIV_ROUND_CLOSEST((max - min) * brightness,
2933+ AMDGPU_MAX_BL_LEVEL);
2934+}
2935+
2936+static u32 convert_brightness_to_user(const struct amdgpu_dm_backlight_caps *caps,
2937+ uint32_t brightness)
2938+{
2939+ unsigned min, max;
2940+
2941+ if (!get_brightness_range(caps, &min, &max))
2942+ return brightness;
2943+
2944+ if (brightness < min)
2945+ return 0;
2946+ // Rescale min..max to 0..255
2947+ return DIV_ROUND_CLOSEST(AMDGPU_MAX_BL_LEVEL * (brightness - min),
2948+ max - min);
29412949 }
29422950
29432951 static int amdgpu_dm_backlight_update_status(struct backlight_device *bd)
@@ -2953,7 +2961,7 @@ static int amdgpu_dm_backlight_update_status(struct backlight_device *bd) · 9 unmodified lines
29532961
29542962 link = (struct dc_link *)dm->backlight_link;
29552963
2956− brightness = convert_brightness(&caps, bd->props.brightness);
2964+ brightness = convert_brightness_from_user(&caps, bd->props.brightness);
29572965 // Change brightness based on AUX property
29582966 if (caps.aux_support)
29592967 return set_backlight_via_aux(link, brightness);
@@ -2970,7 +2978,7 @@ static int amdgpu_dm_backlight_get_brightness(struct backlight_device *bd) · 10 unmodified lines
29702978
29712979 if (ret == DC_ERROR_UNEXPECTED)
29722980 return bd->props.brightness;
2973− return ret;
2981+ return convert_brightness_to_user(&dm->backlight_caps, ret);
29742982 }
29752983
29762984 static const struct backlight_ops amdgpu_dm_backlight_ops = {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c+1−1
@@ -67,7 +67,7 @@ static ssize_t dm_dp_aux_transfer(struct drm_dp_aux *aux, · 66 unmodified lines
6767 result = dc_link_aux_transfer_raw(TO_DM_AUX(aux)->ddc_service, &payload,
6868 &operation_result);
6969
70− if (payload.write)
70+ if (payload.write && result >= 0)
7171 result = msg->size;
7272
7373 if (result < 0)
drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c+15−1
@@ -1108,6 +1108,18 @@ static enum bp_result bios_parser_enable_disp_power_gating( · 1107 unmodified lines
11081108 action);
11091109 }
11101110
1111+static enum bp_result bios_parser_enable_lvtma_control(
1112+ struct dc_bios *dcb,
1113+ uint8_t uc_pwr_on)
1114+{
1115+ struct bios_parser *bp = BP_FROM_DCB(dcb);
1116+
1117+ if (!bp->cmd_tbl.enable_lvtma_control)
1118+ return BP_RESULT_FAILURE;
1119+
1120+ return bp->cmd_tbl.enable_lvtma_control(bp, uc_pwr_on);
1121+}
1122+
11111123 static bool bios_parser_is_accelerated_mode(
11121124 struct dc_bios *dcb)
11131125 {
@@ -2208,7 +2220,9 @@ static const struct dc_vbios_funcs vbios_funcs = { · 1094 unmodified lines
22082220 .get_board_layout_info = bios_get_board_layout_info,
22092221 .pack_data_tables = bios_parser_pack_data_tables,
22102222
2211− .get_atom_dc_golden_table = bios_get_atom_dc_golden_table
2223+ .get_atom_dc_golden_table = bios_get_atom_dc_golden_table,
2224+
2225+ .enable_lvtma_control = bios_parser_enable_lvtma_control
22122226 };
22132227
22142228 static bool bios_parser2_construct(
drivers/gpu/drm/amd/display/dc/bios/command_table2.c+28−0
@@ -904,6 +904,33 @@ static unsigned int get_smu_clock_info_v3_1(struct bios_parser *bp, uint8_t id) · 903 unmodified lines
904904 return 0;
905905 }
906906
907+/******************************************************************************
908+ ******************************************************************************
909+ **
910+ ** LVTMA CONTROL
911+ **
912+ ******************************************************************************
913+ *****************************************************************************/
914+
915+static enum bp_result enable_lvtma_control(
916+ struct bios_parser *bp,
917+ uint8_t uc_pwr_on);
918+
919+static void init_enable_lvtma_control(struct bios_parser *bp)
920+{
921+ /* TODO add switch for table vrsion */
922+ bp->cmd_tbl.enable_lvtma_control = enable_lvtma_control;
923+
924+}
925+
926+static enum bp_result enable_lvtma_control(
927+ struct bios_parser *bp,
928+ uint8_t uc_pwr_on)
929+{
930+ enum bp_result result = BP_RESULT_FAILURE;
931+ return result;
932+}
933+
907934 void dal_firmware_parser_init_cmd_tbl(struct bios_parser *bp)
908935 {
909936 init_dig_encoder_control(bp);
@@ -919,4 +946,5 @@ void dal_firmware_parser_init_cmd_tbl(struct bios_parser *bp) · 9 unmodified lines
919946 init_set_dce_clock(bp);
920947 init_get_smu_clock_info(bp);
921948
949+ init_enable_lvtma_control(bp);
922950 }
drivers/gpu/drm/amd/display/dc/bios/command_table2.h+2−1
@@ -94,7 +94,8 @@ struct cmd_tbl { · 93 unmodified lines
9494 struct bp_set_dce_clock_parameters *bp_params);
9595 unsigned int (*get_smu_clock_info)(
9696 struct bios_parser *bp, uint8_t id);
97−
97+ enum bp_result (*enable_lvtma_control)(struct bios_parser *bp,
98+ uint8_t uc_pwr_on);
9899 };
99100
100101 void dal_firmware_parser_init_cmd_tbl(struct bios_parser *bp);
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c+10−0
@@ -94,6 +94,15 @@ int rn_get_active_display_cnt_wa( · 93 unmodified lines
9494 return display_count;
9595 }
9696
97+void rn_set_low_power_state(struct clk_mgr *clk_mgr_base)
98+{
99+ struct clk_mgr_internal *clk_mgr = TO_CLK_MGR_INTERNAL(clk_mgr_base);
100+
101+ rn_vbios_smu_set_dcn_low_power_state(clk_mgr, DCN_PWR_STATE_LOW_POWER);
102+ /* update power state */
103+ clk_mgr_base->clks.pwr_state = DCN_PWR_STATE_LOW_POWER;
104+}
105+
97106 void rn_update_clocks(struct clk_mgr *clk_mgr_base,
98107 struct dc_state *context,
99108 bool safe_to_lower)
@@ -516,6 +525,7 @@ static struct clk_mgr_funcs dcn21_funcs = { · 416 unmodified lines
516525 .init_clocks = rn_init_clocks,
517526 .enable_pme_wa = rn_enable_pme_wa,
518527 .are_clock_states_equal = rn_are_clock_states_equal,
528+ .set_low_power_state = rn_set_low_power_state,
519529 .notify_wm_ranges = rn_notify_wm_ranges,
520530 .notify_link_rate_change = rn_notify_link_rate_change,
521531 };
drivers/gpu/drm/amd/display/dc/core/dc_link.c+1−1
@@ -763,6 +763,7 @@ static bool detect_dp(struct dc_link *link, · 762 unmodified lines
763763 sink_caps->signal = dp_passive_dongle_detection(link->ddc,
764764 sink_caps,
765765 audio_support);
766+ link->dpcd_caps.dongle_type = sink_caps->dongle_type;
766767 }
767768
768769 return true;
@@ -3289,7 +3290,6 @@ void core_link_disable_stream(struct pipe_ctx *pipe_ctx) · 2520 unmodified lines
32893290 #if defined(CONFIG_DRM_AMD_DC_HDCP)
32903291 update_psp_stream_config(pipe_ctx, true);
32913292 #endif
3292−
32933293 dc->hwss.blank_stream(pipe_ctx);
32943294
32953295 if (pipe_ctx->stream->signal == SIGNAL_TYPE_DISPLAY_PORT_MST)
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c+4−4
@@ -4409,9 +4409,9 @@ bool dc_link_get_backlight_level_nits(struct dc_link *link, · 4408 unmodified lines
44094409 link->connector_signal != SIGNAL_TYPE_DISPLAY_PORT))
44104410 return false;
44114411
4412− if (!core_link_read_dpcd(link, DP_SOURCE_BACKLIGHT_CURRENT_PEAK,
4412+ if (core_link_read_dpcd(link, DP_SOURCE_BACKLIGHT_CURRENT_PEAK,
44134413 dpcd_backlight_get.raw,
4414− sizeof(union dpcd_source_backlight_get)))
4414+ sizeof(union dpcd_source_backlight_get)) != DC_OK)
44154415 return false;
44164416
44174417 *backlight_millinits_avg =
@@ -4450,9 +4450,9 @@ bool dc_link_read_default_bl_aux(struct dc_link *link, uint32_t *backlight_milli · 32 unmodified lines
44504450 link->connector_signal != SIGNAL_TYPE_DISPLAY_PORT))
44514451 return false;
44524452
4453− if (!core_link_read_dpcd(link, DP_SOURCE_BACKLIGHT_LEVEL,
4453+ if (core_link_read_dpcd(link, DP_SOURCE_BACKLIGHT_LEVEL,
44544454 (uint8_t *) backlight_millinits,
4455− sizeof(uint32_t)))
4455+ sizeof(uint32_t)) != DC_OK)
44564456 return false;
44574457
44584458 return true;
drivers/gpu/drm/amd/display/dc/dc_bios_types.h+4−0
@@ -136,6 +136,10 @@ struct dc_vbios_funcs { · 135 unmodified lines
136136
137137 enum bp_result (*get_atom_dc_golden_table)(
138138 struct dc_bios *dcb);
139+
140+ enum bp_result (*enable_lvtma_control)(
141+ struct dc_bios *bios,
142+ uint8_t uc_pwr_on);
139143 };
140144
141145 struct bios_registers {
drivers/gpu/drm/amd/display/dc/dc_stream.h+1−1
@@ -233,7 +233,7 @@ struct dc_stream_state { · 232 unmodified lines
233233 union stream_update_flags update_flags;
234234 };
235235
236−#define ABM_LEVEL_IMMEDIATE_DISABLE 0xFFFFFFFF
236+#define ABM_LEVEL_IMMEDIATE_DISABLE 255
237237
238238 struct dc_stream_update {
239239 struct dc_stream_state *stream;
drivers/gpu/drm/amd/display/dc/dce/dce_panel_cntl.h+1−1
@@ -49,7 +49,7 @@ · 48 unmodified lines
4949 #define DCN_PANEL_CNTL_REG_LIST()\
5050 DCN_PANEL_CNTL_SR(PWRSEQ_CNTL, LVTMA), \
5151 DCN_PANEL_CNTL_SR(PWRSEQ_STATE, LVTMA), \
52− DCE_PANEL_CNTL_SR(PWRSEQ_REF_DIV, LVTMA), \
52+ DCN_PANEL_CNTL_SR(PWRSEQ_REF_DIV, LVTMA), \
5353 SR(BL_PWM_CNTL), \
5454 SR(BL_PWM_CNTL2), \
5555 SR(BL_PWM_PERIOD_CNTL), \
drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c+24−0
@@ -842,6 +842,17 @@ void dce110_edp_power_control( · 841 unmodified lines
842842 cntl.coherent = false;
843843 cntl.lanes_number = LANE_COUNT_FOUR;
844844 cntl.hpd_sel = link->link_enc->hpd_source;
845+
846+ if (ctx->dc->ctx->dmub_srv &&
847+ ctx->dc->debug.dmub_command_table) {
848+ if (cntl.action == TRANSMITTER_CONTROL_POWER_ON)
849+ bp_result = ctx->dc_bios->funcs->enable_lvtma_control(ctx->dc_bios,
850+ LVTMA_CONTROL_POWER_ON);
851+ else
852+ bp_result = ctx->dc_bios->funcs->enable_lvtma_control(ctx->dc_bios,
853+ LVTMA_CONTROL_POWER_OFF);
854+ }
855+
845856 bp_result = link_transmitter_control(ctx->dc_bios, &cntl);
846857
847858 if (!power_up)
@@ -919,8 +930,21 @@ void dce110_edp_backlight_control( · 71 unmodified lines
919930 /*edp 1.2*/
920931 if (cntl.action == TRANSMITTER_CONTROL_BACKLIGHT_ON)
921932 edp_receiver_ready_T7(link);
933+
934+ if (ctx->dc->ctx->dmub_srv &&
935+ ctx->dc->debug.dmub_command_table) {
936+ if (cntl.action == TRANSMITTER_CONTROL_BACKLIGHT_ON)
937+ ctx->dc_bios->funcs->enable_lvtma_control(ctx->dc_bios,
938+ LVTMA_CONTROL_LCD_BLON);
939+ else
940+ ctx->dc_bios->funcs->enable_lvtma_control(ctx->dc_bios,
941+ LVTMA_CONTROL_LCD_BLOFF);
942+ }
943+
922944 link_transmitter_control(ctx->dc_bios, &cntl);
923945
946+
947+
924948 if (enable && link->dpcd_sink_ext_caps.bits.oled)
925949 msleep(OLED_POST_T7_DELAY);
926950
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c+31−22
@@ -1450,33 +1450,42 @@ void dcn10_init_hw(struct dc *dc) · 1449 unmodified lines
14501450 void dcn10_power_down_on_boot(struct dc *dc)
14511451 {
14521452 int i = 0;
1453+ struct dc_link *edp_link;
14531454
1454− if (dc->config.power_down_display_on_boot) {
1455− struct dc_link *edp_link = get_edp_link(dc);
1456−
1457− if (edp_link &&
1458− edp_link->link_enc->funcs->is_dig_enabled &&
1459− edp_link->link_enc->funcs->is_dig_enabled(edp_link->link_enc) &&
1460− dc->hwseq->funcs.edp_backlight_control &&
1461− dc->hwss.power_down &&
1462− dc->hwss.edp_power_control) {
1463− dc->hwseq->funcs.edp_backlight_control(edp_link, false);
1464− dc->hwss.power_down(dc);
1465− dc->hwss.edp_power_control(edp_link, false);
1466− } else {
1467− for (i = 0; i < dc->link_count; i++) {
1468− struct dc_link *link = dc->links[i];
1469−
1470− if (link->link_enc->funcs->is_dig_enabled &&
1471− link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
1472− dc->hwss.power_down) {
1473− dc->hwss.power_down(dc);
1474− break;
1475− }
1455+ if (!dc->config.power_down_display_on_boot)
1456+ return;
1457+
1458+ edp_link = get_edp_link(dc);
1459+ if (edp_link &&
1460+ edp_link->link_enc->funcs->is_dig_enabled &&
1461+ edp_link->link_enc->funcs->is_dig_enabled(edp_link->link_enc) &&
1462+ dc->hwseq->funcs.edp_backlight_control &&
1463+ dc->hwss.power_down &&
1464+ dc->hwss.edp_power_control) {
1465+ dc->hwseq->funcs.edp_backlight_control(edp_link, false);
1466+ dc->hwss.power_down(dc);
1467+ dc->hwss.edp_power_control(edp_link, false);
1468+ } else {
1469+ for (i = 0; i < dc->link_count; i++) {
1470+ struct dc_link *link = dc->links[i];
14761471
1472+ if (link->link_enc->funcs->is_dig_enabled &&
1473+ link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
1474+ dc->hwss.power_down) {
1475+ dc->hwss.power_down(dc);
1476+ break;
14771477 }
1478+
14781479 }
14791480 }
1481+
1482+ /*
1483+ * Call update_clocks with empty context
1484+ * to send DISPLAY_OFF
1485+ * Otherwise DISPLAY_OFF may not be asserted
1486+ */
1487+ if (dc->clk_mgr->funcs->set_low_power_state)
1488+ dc->clk_mgr->funcs->set_low_power_state(dc->clk_mgr);
14801489 }
14811490
14821491 void dcn10_reset_hw_ctx_wrap(
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c+8−0
@@ -1213,6 +1213,7 @@ static enum dc_status dcn10_validate_global(struct dc *dc, struct dc_state *cont · 1212 unmodified lines
12131213 bool video_large = false;
12141214 bool desktop_large = false;
12151215 bool dcc_disabled = false;
1216+ bool mpo_enabled = false;
12161217
12171218 for (i = 0; i < context->stream_count; i++) {
12181219 if (context->stream_status[i].plane_count == 0)
@@ -1221,6 +1222,9 @@ static enum dc_status dcn10_validate_global(struct dc *dc, struct dc_state *cont · 2 unmodified lines
12211222 if (context->stream_status[i].plane_count > 2)
12221223 return DC_FAIL_UNSUPPORTED_1;
12231224
1225+ if (context->stream_status[i].plane_count > 1)
1226+ mpo_enabled = true;
1227+
12241228 for (j = 0; j < context->stream_status[i].plane_count; j++) {
12251229 struct dc_plane_state *plane =
12261230 context->stream_status[i].plane_states[j];
@@ -1244,6 +1248,10 @@ static enum dc_status dcn10_validate_global(struct dc *dc, struct dc_state *cont · 17 unmodified lines
12441248 }
12451249 }
12461250
1251+ /* Disable MPO in multi-display configurations. */
1252+ if (context->stream_count > 1 && mpo_enabled)
1253+ return DC_FAIL_UNSUPPORTED_1;
1254+
12471255 /*
12481256 * Workaround: On DCN10 there is UMC issue that causes underflow when
12491257 * playing 4k video on 4k desktop with video downscaled and single channel
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.c+8−8
@@ -121,35 +121,35 @@ void enc1_update_generic_info_packet( · 120 unmodified lines
121121 switch (packet_index) {
122122 case 0:
123123 REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
124− AFMT_GENERIC0_FRAME_UPDATE, 1);
124+ AFMT_GENERIC0_IMMEDIATE_UPDATE, 1);
125125 break;
126126 case 1:
127127 REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
128− AFMT_GENERIC1_FRAME_UPDATE, 1);
128+ AFMT_GENERIC1_IMMEDIATE_UPDATE, 1);
129129 break;
130130 case 2:
131131 REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
132− AFMT_GENERIC2_FRAME_UPDATE, 1);
132+ AFMT_GENERIC2_IMMEDIATE_UPDATE, 1);
133133 break;
134134 case 3:
135135 REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
136− AFMT_GENERIC3_FRAME_UPDATE, 1);
136+ AFMT_GENERIC3_IMMEDIATE_UPDATE, 1);
137137 break;
138138 case 4:
139139 REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
140− AFMT_GENERIC4_FRAME_UPDATE, 1);
140+ AFMT_GENERIC4_IMMEDIATE_UPDATE, 1);
141141 break;
142142 case 5:
143143 REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
144− AFMT_GENERIC5_FRAME_UPDATE, 1);
144+ AFMT_GENERIC5_IMMEDIATE_UPDATE, 1);
145145 break;
146146 case 6:
147147 REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
148− AFMT_GENERIC6_FRAME_UPDATE, 1);
148+ AFMT_GENERIC6_IMMEDIATE_UPDATE, 1);
149149 break;
150150 case 7:
151151 REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
152− AFMT_GENERIC7_FRAME_UPDATE, 1);
152+ AFMT_GENERIC7_IMMEDIATE_UPDATE, 1);
153153 break;
154154 default:
155155 break;
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.h+14−0
@@ -281,7 +281,14 @@ struct dcn10_stream_enc_registers { · 280 unmodified lines
281281 SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC2_FRAME_UPDATE, mask_sh),\
282282 SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC3_FRAME_UPDATE, mask_sh),\
283283 SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC4_FRAME_UPDATE, mask_sh),\
284+ SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC0_IMMEDIATE_UPDATE, mask_sh),\
285+ SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC1_IMMEDIATE_UPDATE, mask_sh),\
286+ SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC2_IMMEDIATE_UPDATE, mask_sh),\
287+ SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC3_IMMEDIATE_UPDATE, mask_sh),\
284288 SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC4_IMMEDIATE_UPDATE, mask_sh),\
289+ SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC5_IMMEDIATE_UPDATE, mask_sh),\
290+ SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC6_IMMEDIATE_UPDATE, mask_sh),\
291+ SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC7_IMMEDIATE_UPDATE, mask_sh),\
285292 SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC5_FRAME_UPDATE, mask_sh),\
286293 SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC6_FRAME_UPDATE, mask_sh),\
287294 SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC7_FRAME_UPDATE, mask_sh),\
@@ -345,7 +352,14 @@ struct dcn10_stream_enc_registers { · 57 unmodified lines
345352 type AFMT_GENERIC2_FRAME_UPDATE;\
346353 type AFMT_GENERIC3_FRAME_UPDATE;\
347354 type AFMT_GENERIC4_FRAME_UPDATE;\
355+ type AFMT_GENERIC0_IMMEDIATE_UPDATE;\
356+ type AFMT_GENERIC1_IMMEDIATE_UPDATE;\
357+ type AFMT_GENERIC2_IMMEDIATE_UPDATE;\
358+ type AFMT_GENERIC3_IMMEDIATE_UPDATE;\
348359 type AFMT_GENERIC4_IMMEDIATE_UPDATE;\
360+ type AFMT_GENERIC5_IMMEDIATE_UPDATE;\
361+ type AFMT_GENERIC6_IMMEDIATE_UPDATE;\
362+ type AFMT_GENERIC7_IMMEDIATE_UPDATE;\
349363 type AFMT_GENERIC5_FRAME_UPDATE;\
350364 type AFMT_GENERIC6_FRAME_UPDATE;\
351365 type AFMT_GENERIC7_FRAME_UPDATE;\
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c+2−2
@@ -1457,8 +1457,8 @@ static void dcn20_update_dchubp_dpp( · 1456 unmodified lines
14571457
14581458 /* Any updates are handled in dc interface, just need to apply existing for plane enable */
14591459 if ((pipe_ctx->update_flags.bits.enable || pipe_ctx->update_flags.bits.opp_changed ||
1460− pipe_ctx->update_flags.bits.scaler || pipe_ctx->update_flags.bits.viewport)
1461− && pipe_ctx->stream->cursor_attributes.address.quad_part != 0) {
1460+ pipe_ctx->update_flags.bits.scaler || viewport_changed == true) &&
1461+ pipe_ctx->stream->cursor_attributes.address.quad_part != 0) {
14621462 dc->hwss.set_cursor_position(pipe_ctx);
14631463 dc->hwss.set_cursor_attribute(pipe_ctx);
14641464
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_link_encoder.h+3−1
@@ -167,7 +167,9 @@ · 166 unmodified lines
167167 LE_SF(DCIO_SOFT_RESET, UNIPHYB_SOFT_RESET, mask_sh),\
168168 LE_SF(DCIO_SOFT_RESET, UNIPHYC_SOFT_RESET, mask_sh),\
169169 LE_SF(DCIO_SOFT_RESET, UNIPHYD_SOFT_RESET, mask_sh),\
170− LE_SF(DCIO_SOFT_RESET, UNIPHYE_SOFT_RESET, mask_sh)
170+ LE_SF(DCIO_SOFT_RESET, UNIPHYE_SOFT_RESET, mask_sh),\
171+ LE_SF(RDPCSTX0_RDPCSTX_PHY_CNTL6, RDPCS_PHY_DPALT_DP4, mask_sh),\
172+ LE_SF(RDPCSTX0_RDPCSTX_PHY_CNTL6, RDPCS_PHY_DPALT_DISABLE, mask_sh)
171173
172174 #define LINK_ENCODER_MASK_SH_LIST_DCN20(mask_sh)\
173175 LINK_ENCODER_MASK_SH_LIST_DCN10(mask_sh),\
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c+1−1
@@ -3141,7 +3141,7 @@ static bool dcn20_validate_bandwidth_internal(struct dc *dc, struct dc_state *co · 3140 unmodified lines
31413141 int vlevel = 0;
31423142 int pipe_split_from[MAX_PIPES];
31433143 int pipe_cnt = 0;
3144− display_e2e_pipe_params_st *pipes = kzalloc(dc->res_pool->pipe_count * sizeof(display_e2e_pipe_params_st), GFP_KERNEL);
3144+ display_e2e_pipe_params_st *pipes = kzalloc(dc->res_pool->pipe_count * sizeof(display_e2e_pipe_params_st), GFP_ATOMIC);
31453145 DC_LOGGER_INIT(dc->ctx->logger);
31463146
31473147 BW_VAL_TRACE_COUNT();
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dio_link_encoder.h+4−1
@@ -61,7 +61,10 @@ · 60 unmodified lines
6161 DPCS_DCN2_MASK_SH_LIST(mask_sh),\
6262 LE_SF(DPCSTX0_DPCSTX_TX_CNTL, DPCS_TX_DATA_ORDER_INVERT_18_BIT, mask_sh),\
6363 LE_SF(RDPCSTX0_RDPCSTX_PHY_CNTL0, RDPCS_PHY_TX_VBOOST_LVL, mask_sh),\
64− LE_SF(RDPCSTX0_RDPCSTX_CLOCK_CNTL, RDPCS_TX_CLK_EN, mask_sh)
64+ LE_SF(RDPCSTX0_RDPCSTX_CLOCK_CNTL, RDPCS_TX_CLK_EN, mask_sh),\
65+ LE_SF(RDPCSTX0_RDPCSTX_PHY_CNTL6, RDPCS_PHY_DPALT_DP4, mask_sh),\
66+ LE_SF(RDPCSTX0_RDPCSTX_PHY_CNTL6, RDPCS_PHY_DPALT_DISABLE, mask_sh)
67+
6568
6669 void dcn30_link_encoder_construct(
6770 struct dcn20_link_encoder *enc20,
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c+1−0
@@ -491,6 +491,7 @@ static const struct dcn10_link_enc_hpd_registers link_enc_hpd_regs[] = { · 490 unmodified lines
491491 [id] = {\
492492 LE_DCN3_REG_LIST(id), \
493493 UNIPHY_DCN2_REG_LIST(phyid), \
494+ SRI(DP_DPHY_INTERNAL_CTRL, DP, id) \
494495 }
495496
496497 static const struct dce110_aux_registers_shift aux_shift = {
drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c+4−0
@@ -63,6 +63,7 @@ typedef struct { · 62 unmodified lines
6363
6464 #define BPP_INVALID 0
6565 #define BPP_BLENDED_PIPE 0xffffffff
66+#define DCN30_MAX_DSC_IMAGE_WIDTH 5184
6667
6768 static void DisplayPipeConfiguration(struct display_mode_lib *mode_lib);
6869 static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation(
@@ -3984,6 +3985,9 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l · 3915 unmodified lines
39843985 } else if (v->PlaneRequiredDISPCLKWithoutODMCombine > v->MaxDispclkRoundedDownToDFSGranularity) {
39853986 v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_2to1;
39863987 v->PlaneRequiredDISPCLK = v->PlaneRequiredDISPCLKWithODMCombine2To1;
3988+ } else if (v->DSCEnabled[k] && (v->HActive[k] > DCN30_MAX_DSC_IMAGE_WIDTH)) {
3989+ v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_2to1;
3990+ v->PlaneRequiredDISPCLK = v->PlaneRequiredDISPCLKWithODMCombine2To1;
39873991 } else {
39883992 v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_disabled;
39893993 v->PlaneRequiredDISPCLK = v->PlaneRequiredDISPCLKWithoutODMCombine;
drivers/gpu/drm/amd/display/dc/inc/hw/clk_mgr.h+2−0
@@ -230,6 +230,8 @@ struct clk_mgr_funcs { · 229 unmodified lines
230230
231231 int (*get_dp_ref_clk_frequency)(struct clk_mgr *clk_mgr);
232232
233+ void (*set_low_power_state)(struct clk_mgr *clk_mgr);
234+
233235 void (*init_clocks)(struct clk_mgr *clk_mgr);
234236
235237 void (*enable_pme_wa) (struct clk_mgr *clk_mgr);
drivers/gpu/drm/amd/display/include/bios_parser_types.h+7−0
@@ -101,6 +101,13 @@ enum bp_pipe_control_action { · 100 unmodified lines
101101 ASIC_PIPE_INIT
102102 };
103103
104+enum bp_lvtma_control_action {
105+ LVTMA_CONTROL_LCD_BLOFF = 2,
106+ LVTMA_CONTROL_LCD_BLON = 3,
107+ LVTMA_CONTROL_POWER_ON = 12,
108+ LVTMA_CONTROL_POWER_OFF = 13
109+};
110+
104111 struct bp_encoder_control {
105112 enum bp_encoder_control_action action;
106113 enum engine_id engine_id;
drivers/gpu/drm/amd/display/include/fixed31_32.h+3−0
@@ -431,6 +431,9 @@ struct fixed31_32 dc_fixpt_log(struct fixed31_32 arg); · 430 unmodified lines
431431 */
432432 static inline struct fixed31_32 dc_fixpt_pow(struct fixed31_32 arg1, struct fixed31_32 arg2)
433433 {
434+ if (arg1.value == 0)
435+ return arg2.value == 0 ? dc_fixpt_one : dc_fixpt_zero;
436+
434437 return dc_fixpt_exp(
435438 dc_fixpt_mul(
436439 dc_fixpt_log(arg1),
drivers/gpu/drm/amd/display/modules/freesync/freesync.c+29−7
@@ -324,22 +324,44 @@ static void apply_below_the_range(struct core_freesync *core_freesync, · 323 unmodified lines
324324
325325 /* Choose number of frames to insert based on how close it
326326 * can get to the mid point of the variable range.
327+ * - Delta for CEIL: delta_from_mid_point_in_us_1
328+ * - Delta for FLOOR: delta_from_mid_point_in_us_2
327329 */
328− if ((frame_time_in_us / mid_point_frames_ceil) > in_out_vrr->min_duration_in_us &&
329− (delta_from_mid_point_in_us_1 < delta_from_mid_point_in_us_2 ||
330− mid_point_frames_floor < 2)) {
330+ if ((last_render_time_in_us / mid_point_frames_ceil) < in_out_vrr->min_duration_in_us) {
331+ /* Check for out of range.
332+ * If using CEIL produces a value that is out of range,
333+ * then we are forced to use FLOOR.
334+ */
335+ frames_to_insert = mid_point_frames_floor;
336+ } else if (mid_point_frames_floor < 2) {
337+ /* Check if FLOOR would result in non-LFC. In this case
338+ * choose to use CEIL
339+ */
340+ frames_to_insert = mid_point_frames_ceil;
341+ } else if (delta_from_mid_point_in_us_1 < delta_from_mid_point_in_us_2) {
342+ /* If choosing CEIL results in a frame duration that is
343+ * closer to the mid point of the range.
344+ * Choose CEIL
345+ */
331346 frames_to_insert = mid_point_frames_ceil;
332− delta_from_mid_point_delta_in_us = delta_from_mid_point_in_us_2 -
333− delta_from_mid_point_in_us_1;
334347 } else {
348+ /* If choosing FLOOR results in a frame duration that is
349+ * closer to the mid point of the range.
350+ * Choose FLOOR
351+ */
335352 frames_to_insert = mid_point_frames_floor;
336− delta_from_mid_point_delta_in_us = delta_from_mid_point_in_us_1 -
337− delta_from_mid_point_in_us_2;
338353 }
339354
340355 /* Prefer current frame multiplier when BTR is enabled unless it drifts
341356 * too far from the midpoint
342357 */
358+ if (delta_from_mid_point_in_us_1 < delta_from_mid_point_in_us_2) {
359+ delta_from_mid_point_delta_in_us = delta_from_mid_point_in_us_2 -
360+ delta_from_mid_point_in_us_1;
361+ } else {
362+ delta_from_mid_point_delta_in_us = delta_from_mid_point_in_us_1 -
363+ delta_from_mid_point_in_us_2;
364+ }
343365 if (in_out_vrr->btr.frames_to_insert != 0 &&
344366 delta_from_mid_point_delta_in_us < BTR_DRIFT_MARGIN) {
345367 if (((last_render_time_in_us / in_out_vrr->btr.frames_to_insert) <
drivers/gpu/drm/amd/powerplay/arcturus_ppt.c+13−6
@@ -1840,10 +1840,14 @@ static bool arcturus_is_dpm_running(struct smu_context *smu) · 1839 unmodified lines
18401840 {
18411841 int ret = 0;
18421842 uint32_t feature_mask[2];
1843− unsigned long feature_enabled;
1843+ uint64_t feature_enabled;
1844+
18441845 ret = smu_cmn_get_enabled_mask(smu, feature_mask, 2);
1845− feature_enabled = (unsigned long)((uint64_t)feature_mask[0] |
1846− ((uint64_t)feature_mask[1] << 32));
1846+ if (ret)
1847+ return false;
1848+
1849+ feature_enabled = (uint64_t)feature_mask[1] << 32 | feature_mask[0];
1850+
18471851 return !!(feature_enabled & SMC_DPM_FEATURE);
18481852 }
18491853
@@ -2204,14 +2208,17 @@ static const struct throttling_logging_label { · 354 unmodified lines
22042208 };
22052209 static void arcturus_log_thermal_throttling_event(struct smu_context *smu)
22062210 {
2211+ int ret;
22072212 int throttler_idx, throtting_events = 0, buf_idx = 0;
22082213 struct amdgpu_device *adev = smu->adev;
22092214 uint32_t throttler_status;
22102215 char log_buf[256];
22112216
2212− arcturus_get_smu_metrics_data(smu,
2213− METRICS_THROTTLER_STATUS,
2214− &throttler_status);
2217+ ret = arcturus_get_smu_metrics_data(smu,
2218+ METRICS_THROTTLER_STATUS,
2219+ &throttler_status);
2220+ if (ret)
2221+ return;
22152222
22162223 memset(log_buf, 0, sizeof(log_buf));
22172224 for (throttler_idx = 0; throttler_idx < ARRAY_SIZE(logging_label);
drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c+3−6
@@ -204,8 +204,7 @@ static int smu10_set_min_deep_sleep_dcefclk(struct pp_hwmgr *hwmgr, uint32_t clo · 203 unmodified lines
204204 {
205205 struct smu10_hwmgr *smu10_data = (struct smu10_hwmgr *)(hwmgr->backend);
206206
207− if (smu10_data->need_min_deep_sleep_dcefclk &&
208− smu10_data->deep_sleep_dcefclk != clock) {
207+ if (clock && smu10_data->deep_sleep_dcefclk != clock) {
209208 smu10_data->deep_sleep_dcefclk = clock;
210209 smum_send_msg_to_smc_with_parameter(hwmgr,
211210 PPSMC_MSG_SetMinDeepSleepDcefclk,
@@ -219,8 +218,7 @@ static int smu10_set_hard_min_dcefclk_by_freq(struct pp_hwmgr *hwmgr, uint32_t c · 7 unmodified lines
219218 {
220219 struct smu10_hwmgr *smu10_data = (struct smu10_hwmgr *)(hwmgr->backend);
221220
222− if (smu10_data->dcf_actual_hard_min_freq &&
223− smu10_data->dcf_actual_hard_min_freq != clock) {
221+ if (clock && smu10_data->dcf_actual_hard_min_freq != clock) {
224222 smu10_data->dcf_actual_hard_min_freq = clock;
225223 smum_send_msg_to_smc_with_parameter(hwmgr,
226224 PPSMC_MSG_SetHardMinDcefclkByFreq,
@@ -234,8 +232,7 @@ static int smu10_set_hard_min_fclk_by_freq(struct pp_hwmgr *hwmgr, uint32_t cloc · 7 unmodified lines
234232 {
235233 struct smu10_hwmgr *smu10_data = (struct smu10_hwmgr *)(hwmgr->backend);
236234
237− if (smu10_data->f_actual_hard_min_freq &&
238− smu10_data->f_actual_hard_min_freq != clock) {
235+ if (clock && smu10_data->f_actual_hard_min_freq != clock) {
239236 smu10_data->f_actual_hard_min_freq = clock;
240237 smum_send_msg_to_smc_with_parameter(hwmgr,
241238 PPSMC_MSG_SetHardMinFclkByFreq,
drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c+2−1
@@ -3581,7 +3581,8 @@ static int smu7_read_sensor(struct pp_hwmgr *hwmgr, int idx, · 3580 unmodified lines
35813581 case AMDGPU_PP_SENSOR_GPU_POWER:
35823582 return smu7_get_gpu_power(hwmgr, (uint32_t *)value);
35833583 case AMDGPU_PP_SENSOR_VDDGFX:
3584− if ((data->vr_config & 0xff) == 0x2)
3584+ if ((data->vr_config & VRCONF_VDDGFX_MASK) ==
3585+ (VR_SVI2_PLANE_2 << VRCONF_VDDGFX_SHIFT))
35853586 val_vid = PHM_READ_INDIRECT_FIELD(hwmgr->device,
35863587 CGS_IND_REG__SMC, PWR_SVI2_STATUS, PLANE2_VID);
35873588 else
drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c+22−10
@@ -363,17 +363,29 @@ int vega10_thermal_get_temperature(struct pp_hwmgr *hwmgr) · 362 unmodified lines
363363 static int vega10_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
364364 struct PP_TemperatureRange *range)
365365 {
366+ struct phm_ppt_v2_information *pp_table_info =
367+ (struct phm_ppt_v2_information *)(hwmgr->pptable);
368+ struct phm_tdp_table *tdp_table = pp_table_info->tdp_table;
366369 struct amdgpu_device *adev = hwmgr->adev;
367− int low = VEGA10_THERMAL_MINIMUM_ALERT_TEMP *
368− PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
369− int high = VEGA10_THERMAL_MAXIMUM_ALERT_TEMP *
370− PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
370+ int low = VEGA10_THERMAL_MINIMUM_ALERT_TEMP;
371+ int high = VEGA10_THERMAL_MAXIMUM_ALERT_TEMP;
371372 uint32_t val;
372373
373− if (low < range->min)
374− low = range->min;
375− if (high > range->max)
376− high = range->max;
374+ /* compare them in unit celsius degree */
375+ if (low < range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES)
376+ low = range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
377+
378+ /*
379+ * As a common sense, usSoftwareShutdownTemp should be bigger
380+ * than ThotspotLimit. For any invalid usSoftwareShutdownTemp,
381+ * we will just use the max possible setting VEGA10_THERMAL_MAXIMUM_ALERT_TEMP
382+ * to avoid false alarms.
383+ */
384+ if ((tdp_table->usSoftwareShutdownTemp >
385+ range->hotspot_crit_max / PP_TEMPERATURE_UNITS_PER_CENTIGRADES)) {
386+ if (high > tdp_table->usSoftwareShutdownTemp)
387+ high = tdp_table->usSoftwareShutdownTemp;
388+ }
377389
378390 if (low > high)
379391 return -EINVAL;
@@ -382,8 +394,8 @@ static int vega10_thermal_set_temperature_range(struct pp_hwmgr *hwmgr, · 2 unmodified lines
382394
383395 val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, MAX_IH_CREDIT, 5);
384396 val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, THERM_IH_HW_ENA, 1);
385− val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, (high / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
386− val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, (low / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
397+ val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, high);
398+ val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, low);
387399 val &= (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK) &
388400 (~THM_THERMAL_INT_CTRL__THERM_INTH_MASK_MASK) &
389401 (~THM_THERMAL_INT_CTRL__THERM_INTL_MASK_MASK);
drivers/gpu/drm/amd/powerplay/hwmgr/vega12_thermal.c+11−10
@@ -170,17 +170,18 @@ int vega12_thermal_get_temperature(struct pp_hwmgr *hwmgr) · 169 unmodified lines
170170 static int vega12_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
171171 struct PP_TemperatureRange *range)
172172 {
173+ struct phm_ppt_v3_information *pptable_information =
174+ (struct phm_ppt_v3_information *)hwmgr->pptable;
173175 struct amdgpu_device *adev = hwmgr->adev;
174− int low = VEGA12_THERMAL_MINIMUM_ALERT_TEMP *
175− PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
176− int high = VEGA12_THERMAL_MAXIMUM_ALERT_TEMP *
177− PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
176+ int low = VEGA12_THERMAL_MINIMUM_ALERT_TEMP;
177+ int high = VEGA12_THERMAL_MAXIMUM_ALERT_TEMP;
178178 uint32_t val;
179179
180− if (low < range->min)
181− low = range->min;
182− if (high > range->max)
183− high = range->max;
180+ /* compare them in unit celsius degree */
181+ if (low < range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES)
182+ low = range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
183+ if (high > pptable_information->us_software_shutdown_temp)
184+ high = pptable_information->us_software_shutdown_temp;
184185
185186 if (low > high)
186187 return -EINVAL;
@@ -189,8 +190,8 @@ static int vega12_thermal_set_temperature_range(struct pp_hwmgr *hwmgr, · 2 unmodified lines
189190
190191 val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, MAX_IH_CREDIT, 5);
191192 val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, THERM_IH_HW_ENA, 1);
192− val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, (high / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
193− val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, (low / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
193+ val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, high);
194+ val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, low);
194195 val = val & (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK);
195196
196197 WREG32_SOC15(THM, 0, mmTHM_THERMAL_INT_CTRL, val);
drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c+19−25
@@ -979,10 +979,7 @@ static int vega20_disable_all_smu_features(struct pp_hwmgr *hwmgr) · 978 unmodified lines
979979 {
980980 struct vega20_hwmgr *data =
981981 (struct vega20_hwmgr *)(hwmgr->backend);
982− uint64_t features_enabled;
983− int i;
984− bool enabled;
985− int ret = 0;
982+ int i, ret = 0;
986983
987984 PP_ASSERT_WITH_CODE((ret = smum_send_msg_to_smc(hwmgr,
988985 PPSMC_MSG_DisableAllSmuFeatures,
@@ -990,17 +987,8 @@ static int vega20_disable_all_smu_features(struct pp_hwmgr *hwmgr) · 1 unmodified line
990987 "[DisableAllSMUFeatures] Failed to disable all smu features!",
991988 return ret);
992989
993− ret = vega20_get_enabled_smc_features(hwmgr, &features_enabled);
994− PP_ASSERT_WITH_CODE(!ret,
995− "[DisableAllSMUFeatures] Failed to get enabled smc features!",
996− return ret);
997−
998− for (i = 0; i < GNLD_FEATURES_MAX; i++) {
999− enabled = (features_enabled & data->smu_features[i].smu_feature_bitmap) ?
1000− true : false;
1001− data->smu_features[i].enabled = enabled;
1002− data->smu_features[i].supported = enabled;
1003− }
990+ for (i = 0; i < GNLD_FEATURES_MAX; i++)
991+ data->smu_features[i].enabled = 0;
1004992
1005993 return 0;
1006994 }
@@ -1652,12 +1640,6 @@ static void vega20_init_powergate_state(struct pp_hwmgr *hwmgr) · 645 unmodified lines
16521640
16531641 data->uvd_power_gated = true;
16541642 data->vce_power_gated = true;
1655−
1656− if (data->smu_features[GNLD_DPM_UVD].enabled)
1657− data->uvd_power_gated = false;
1658−
1659− if (data->smu_features[GNLD_DPM_VCE].enabled)
1660− data->vce_power_gated = false;
16611643 }
16621644
16631645 static int vega20_enable_dpm_tasks(struct pp_hwmgr *hwmgr)
@@ -3230,10 +3212,11 @@ static int vega20_get_ppfeature_status(struct pp_hwmgr *hwmgr, char *buf) · 1566 unmodified lines
32303212
32313213 static int vega20_set_ppfeature_status(struct pp_hwmgr *hwmgr, uint64_t new_ppfeature_masks)
32323214 {
3233− uint64_t features_enabled;
3234− uint64_t features_to_enable;
3235− uint64_t features_to_disable;
3236− int ret = 0;
3215+ struct vega20_hwmgr *data =
3216+ (struct vega20_hwmgr *)(hwmgr->backend);
3217+ uint64_t features_enabled, features_to_enable, features_to_disable;
3218+ int i, ret = 0;
3219+ bool enabled;
32373220
32383221 if (new_ppfeature_masks >= (1ULL << GNLD_FEATURES_MAX))
32393222 return -EINVAL;
@@ -3262,6 +3245,17 @@ static int vega20_set_ppfeature_status(struct pp_hwmgr *hwmgr, uint64_t new_ppfe · 22 unmodified lines
32623245 return ret;
32633246 }
32643247
3248+ /* Update the cached feature enablement state */
3249+ ret = vega20_get_enabled_smc_features(hwmgr, &features_enabled);
3250+ if (ret)
3251+ return ret;
3252+
3253+ for (i = 0; i < GNLD_FEATURES_MAX; i++) {
3254+ enabled = (features_enabled & data->smu_features[i].smu_feature_bitmap) ?
3255+ true : false;
3256+ data->smu_features[i].enabled = enabled;
3257+ }
3258+
32653259 return 0;
32663260 }
32673261
drivers/gpu/drm/amd/powerplay/hwmgr/vega20_thermal.c+11−10
@@ -240,17 +240,18 @@ int vega20_thermal_get_temperature(struct pp_hwmgr *hwmgr) · 239 unmodified lines
240240 static int vega20_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
241241 struct PP_TemperatureRange *range)
242242 {
243+ struct phm_ppt_v3_information *pptable_information =
244+ (struct phm_ppt_v3_information *)hwmgr->pptable;
243245 struct amdgpu_device *adev = hwmgr->adev;
244− int low = VEGA20_THERMAL_MINIMUM_ALERT_TEMP *
245− PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
246− int high = VEGA20_THERMAL_MAXIMUM_ALERT_TEMP *
247− PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
246+ int low = VEGA20_THERMAL_MINIMUM_ALERT_TEMP;
247+ int high = VEGA20_THERMAL_MAXIMUM_ALERT_TEMP;
248248 uint32_t val;
249249
250− if (low < range->min)
251− low = range->min;
252− if (high > range->max)
253− high = range->max;
250+ /* compare them in unit celsius degree */
251+ if (low < range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES)
252+ low = range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
253+ if (high > pptable_information->us_software_shutdown_temp)
254+ high = pptable_information->us_software_shutdown_temp;
254255
255256 if (low > high)
256257 return -EINVAL;
@@ -259,8 +260,8 @@ static int vega20_thermal_set_temperature_range(struct pp_hwmgr *hwmgr, · 2 unmodified lines
259260
260261 val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, MAX_IH_CREDIT, 5);
261262 val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, THERM_IH_HW_ENA, 1);
262− val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, (high / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
263− val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, (low / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
263+ val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, high);
264+ val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, low);
264265 val = val & (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK);
265266
266267 WREG32_SOC15(THM, 0, mmTHM_THERMAL_INT_CTRL, val);
drivers/gpu/drm/amd/powerplay/navi10_ppt.c+7−3
@@ -1331,10 +1331,14 @@ static bool navi10_is_dpm_running(struct smu_context *smu) · 1330 unmodified lines
13311331 {
13321332 int ret = 0;
13331333 uint32_t feature_mask[2];
1334− unsigned long feature_enabled;
1334+ uint64_t feature_enabled;
1335+
13351336 ret = smu_cmn_get_enabled_mask(smu, feature_mask, 2);
1336− feature_enabled = (unsigned long)((uint64_t)feature_mask[0] |
1337− ((uint64_t)feature_mask[1] << 32));
1337+ if (ret)
1338+ return false;
1339+
1340+ feature_enabled = (uint64_t)feature_mask[1] << 32 | feature_mask[0];
1341+
13381342 return !!(feature_enabled & SMC_DPM_FEATURE);
13391343 }
13401344
drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c+19−6
@@ -68,7 +68,8 @@ · 67 unmodified lines
6868 FEATURE_MASK(FEATURE_DPM_LINK_BIT) | \
6969 FEATURE_MASK(FEATURE_DPM_SOCCLK_BIT) | \
7070 FEATURE_MASK(FEATURE_DPM_FCLK_BIT) | \
71− FEATURE_MASK(FEATURE_DPM_DCEFCLK_BIT))
71+ FEATURE_MASK(FEATURE_DPM_DCEFCLK_BIT) | \
72+ FEATURE_MASK(FEATURE_DPM_MP0CLK_BIT))
7273
7374 #define SMU_11_0_7_GFX_BUSY_THRESHOLD 15
7475
@@ -95,6 +96,7 @@ static struct cmn2asic_msg_mapping sienna_cichlid_message_map[SMU_MSG_MAX_COUNT] · 20 unmodified lines
9596 MSG_MAP(TransferTableSmu2Dram, PPSMC_MSG_TransferTableSmu2Dram, 0),
9697 MSG_MAP(TransferTableDram2Smu, PPSMC_MSG_TransferTableDram2Smu, 0),
9798 MSG_MAP(UseDefaultPPTable, PPSMC_MSG_UseDefaultPPTable, 0),
99+ MSG_MAP(RunDcBtc, PPSMC_MSG_RunDcBtc, 0),
98100 MSG_MAP(EnterBaco, PPSMC_MSG_EnterBaco, 0),
99101 MSG_MAP(SetSoftMinByFreq, PPSMC_MSG_SetSoftMinByFreq, 0),
100102 MSG_MAP(SetSoftMaxByFreq, PPSMC_MSG_SetSoftMaxByFreq, 0),
@@ -228,6 +230,7 @@ sienna_cichlid_get_allowed_feature_mask(struct smu_context *smu, · 127 unmodified lines
228230
229231 *(uint64_t *)feature_mask |= FEATURE_MASK(FEATURE_DPM_PREFETCHER_BIT)
230232 | FEATURE_MASK(FEATURE_DPM_FCLK_BIT)
233+ | FEATURE_MASK(FEATURE_DPM_MP0CLK_BIT)
231234 | FEATURE_MASK(FEATURE_DS_SOCCLK_BIT)
232235 | FEATURE_MASK(FEATURE_DS_DCEFCLK_BIT)
233236 | FEATURE_MASK(FEATURE_DS_FCLK_BIT)
@@ -775,7 +778,7 @@ static int sienna_cichlid_dpm_set_vcn_enable(struct smu_context *smu, bool enabl · 541 unmodified lines
775778 ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_PowerUpVcn, 0, NULL);
776779 if (ret)
777780 return ret;
778− if (adev->asic_type == CHIP_SIENNA_CICHLID) {
781+ if (adev->vcn.num_vcn_inst > 1) {
779782 ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_PowerUpVcn,
780783 0x10000, NULL);
781784 if (ret)
@@ -787,7 +790,7 @@ static int sienna_cichlid_dpm_set_vcn_enable(struct smu_context *smu, bool enabl · 5 unmodified lines
787790 ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_PowerDownVcn, 0, NULL);
788791 if (ret)
789792 return ret;
790− if (adev->asic_type == CHIP_SIENNA_CICHLID) {
793+ if (adev->vcn.num_vcn_inst > 1) {
791794 ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_PowerDownVcn,
792795 0x10000, NULL);
793796 if (ret)
@@ -1146,10 +1149,14 @@ static bool sienna_cichlid_is_dpm_running(struct smu_context *smu) · 352 unmodified lines
11461149 {
11471150 int ret = 0;
11481151 uint32_t feature_mask[2];
1149− unsigned long feature_enabled;
1152+ uint64_t feature_enabled;
1153+
11501154 ret = smu_cmn_get_enabled_mask(smu, feature_mask, 2);
1151− feature_enabled = (unsigned long)((uint64_t)feature_mask[0] |
1152− ((uint64_t)feature_mask[1] << 32));
1155+ if (ret)
1156+ return false;
1157+
1158+ feature_enabled = (uint64_t)feature_mask[1] << 32 | feature_mask[0];
1159+
11531160 return !!(feature_enabled & SMC_DPM_FEATURE);
11541161 }
11551162
@@ -1732,6 +1739,11 @@ static int sienna_cichlid_get_dpm_ultimate_freq(struct smu_context *smu, · 576 unmodified lines
17321739 return ret;
17331740 }
17341741
1742+static int sienna_cichlid_run_btc(struct smu_context *smu)
1743+{
1744+ return smu_cmn_send_smc_msg(smu, SMU_MSG_RunDcBtc, NULL);
1745+}
1746+
17351747 static bool sienna_cichlid_is_baco_supported(struct smu_context *smu)
17361748 {
17371749 struct amdgpu_device *adev = smu->adev;
@@ -2719,6 +2731,7 @@ static const struct pptable_funcs sienna_cichlid_ppt_funcs = { · 981 unmodified lines
27192731 .mode1_reset = smu_v11_0_mode1_reset,
27202732 .get_dpm_ultimate_freq = sienna_cichlid_get_dpm_ultimate_freq,
27212733 .set_soft_freq_limited_range = smu_v11_0_set_soft_freq_limited_range,
2734+ .run_btc = sienna_cichlid_run_btc,
27222735 .get_pp_feature_mask = smu_cmn_get_pp_feature_mask,
27232736 .set_pp_feature_mask = smu_cmn_set_pp_feature_mask,
27242737 };
drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c+2−0
@@ -37,6 +37,7 @@ · 36 unmodified lines
3737 #include "cgs_common.h"
3838 #include "atombios.h"
3939 #include "pppcielanes.h"
40+#include "smu7_smumgr.h"
4041
4142 #include "smu/smu_7_0_1_d.h"
4243 #include "smu/smu_7_0_1_sh_mask.h"
@@ -2948,6 +2949,7 @@ const struct pp_smumgr_func ci_smu_funcs = { · 2905 unmodified lines
29482949 .request_smu_load_specific_fw = NULL,
29492950 .send_msg_to_smc = ci_send_msg_to_smc,
29502951 .send_msg_to_smc_with_parameter = ci_send_msg_to_smc_with_parameter,
2952+ .get_argument = smu7_get_argument,
29512953 .download_pptable_settings = NULL,
29522954 .upload_pptable_settings = NULL,
29532955 .get_offsetof = ci_get_offsetof,
drivers/gpu/drm/arm/malidp_hw.c+3−3
@@ -532,7 +532,7 @@ static int malidp500_enable_memwrite(struct malidp_hw_device *hwdev, · 531 unmodified lines
532532 malidp_hw_write(hwdev, lower_32_bits(addrs[1]), base + MALIDP_MW_P2_PTR_LOW);
533533 malidp_hw_write(hwdev, upper_32_bits(addrs[1]), base + MALIDP_MW_P2_PTR_HIGH);
534534 malidp_hw_write(hwdev, pitches[1], base + MALIDP_MW_P2_STRIDE);
535− /* fall through */
535+ fallthrough;
536536 case 1:
537537 malidp_hw_write(hwdev, lower_32_bits(addrs[0]), base + MALIDP_MW_P1_PTR_LOW);
538538 malidp_hw_write(hwdev, upper_32_bits(addrs[0]), base + MALIDP_MW_P1_PTR_HIGH);
@@ -869,7 +869,7 @@ static int malidp550_enable_memwrite(struct malidp_hw_device *hwdev, · 330 unmodified lines
869869 malidp_hw_write(hwdev, lower_32_bits(addrs[1]), base + MALIDP_MW_P2_PTR_LOW);
870870 malidp_hw_write(hwdev, upper_32_bits(addrs[1]), base + MALIDP_MW_P2_PTR_HIGH);
871871 malidp_hw_write(hwdev, pitches[1], base + MALIDP_MW_P2_STRIDE);
872− /* fall through */
872+ fallthrough;
873873 case 1:
874874 malidp_hw_write(hwdev, lower_32_bits(addrs[0]), base + MALIDP_MW_P1_PTR_LOW);
875875 malidp_hw_write(hwdev, upper_32_bits(addrs[0]), base + MALIDP_MW_P1_PTR_HIGH);
@@ -1324,7 +1324,7 @@ static irqreturn_t malidp_se_irq(int irq, void *arg) · 448 unmodified lines
13241324 break;
13251325 case MW_RESTART:
13261326 drm_writeback_signal_completion(&malidp->mw_connector, 0);
1327− /* fall through - to a new start */
1327+ fallthrough; /* to a new start */
13281328 case MW_START:
13291329 /* writeback started, need to emulate one-shot mode */
13301330 hw->disable_memwrite(hwdev);
drivers/gpu/drm/ast/ast_main.c+1−1
@@ -238,7 +238,7 @@ static int ast_detect_chip(struct drm_device *dev, bool *need_post) · 237 unmodified lines
238238 ast->dp501_fw_addr = NULL;
239239 }
240240 }
241− /* fallthrough */
241+ fallthrough;
242242 case 0x0c:
243243 ast->tx_chip_type = AST_TX_DP501;
244244 }
drivers/gpu/drm/bridge/nwl-dsi.c+0−2
@@ -409,7 +409,6 @@ static bool nwl_dsi_read_packet(struct nwl_dsi *dsi, u32 status) · 408 unmodified lines
409409
410410 switch (data_type) {
411411 case MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_2BYTE:
412− fallthrough;
413412 case MIPI_DSI_RX_DCS_SHORT_READ_RESPONSE_2BYTE:
414413 if (xfer->msg->rx_len > 1) {
415414 /* read second byte */
@@ -418,7 +417,6 @@ static bool nwl_dsi_read_packet(struct nwl_dsi *dsi, u32 status) · 2 unmodified lines
418417 }
419418 fallthrough;
420419 case MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_1BYTE:
421− fallthrough;
422420 case MIPI_DSI_RX_DCS_SHORT_READ_RESPONSE_1BYTE:
423421 if (xfer->msg->rx_len > 0) {
424422 /* read first byte */
drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c+2−2
@@ -61,10 +61,10 @@ static int dw_hdmi_i2s_hw_params(struct device *dev, void *data, · 60 unmodified lines
6161 switch (hparms->channels) {
6262 case 7 ... 8:
6363 conf0 |= HDMI_AUD_CONF0_I2S_EN3;
64− /* Fall-thru */
64+ fallthrough;
6565 case 5 ... 6:
6666 conf0 |= HDMI_AUD_CONF0_I2S_EN2;
67− /* Fall-thru */
67+ fallthrough;
6868 case 3 ... 4:
6969 conf0 |= HDMI_AUD_CONF0_I2S_EN1;
7070 /* Fall-thru */
drivers/gpu/drm/bridge/ti-sn65dsi86.c+3−3
@@ -604,13 +604,13 @@ static void ti_sn_bridge_read_valid_rates(struct ti_sn_bridge *pdata, · 603 unmodified lines
604604 DRM_DEV_ERROR(pdata->dev,
605605 "Unexpected max rate (%#x); assuming 5.4 GHz\n",
606606 (int)dpcd_val);
607− /* fall through */
607+ fallthrough;
608608 case DP_LINK_BW_5_4:
609609 rate_valid[7] = 1;
610− /* fall through */
610+ fallthrough;
611611 case DP_LINK_BW_2_7:
612612 rate_valid[4] = 1;
613− /* fall through */
613+ fallthrough;
614614 case DP_LINK_BW_1_62:
615615 rate_valid[1] = 1;
616616 break;
drivers/gpu/drm/drm_atomic_helper.c+4−3
@@ -34,6 +34,7 @@ · 33 unmodified lines
3434 #include <drm/drm_bridge.h>
3535 #include <drm/drm_damage_helper.h>
3636 #include <drm/drm_device.h>
37+#include <drm/drm_drv.h>
3738 #include <drm/drm_plane_helper.h>
3839 #include <drm/drm_print.h>
3940 #include <drm/drm_self_refresh_helper.h>
@@ -3106,7 +3107,7 @@ void drm_atomic_helper_shutdown(struct drm_device *dev) · 3066 unmodified lines
31063107 if (ret)
31073108 DRM_ERROR("Disabling all crtc's during unload failed with %i\n", ret);
31083109
3109− DRM_MODESET_LOCK_ALL_END(ctx, ret);
3110+ DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
31103111 }
31113112 EXPORT_SYMBOL(drm_atomic_helper_shutdown);
31123113
@@ -3246,7 +3247,7 @@ struct drm_atomic_state *drm_atomic_helper_suspend(struct drm_device *dev) · 133 unmodified lines
32463247 }
32473248
32483249 unlock:
3249− DRM_MODESET_LOCK_ALL_END(ctx, err);
3250+ DRM_MODESET_LOCK_ALL_END(dev, ctx, err);
32503251 if (err)
32513252 return ERR_PTR(err);
32523253
@@ -3327,7 +3328,7 @@ int drm_atomic_helper_resume(struct drm_device *dev, · 74 unmodified lines
33273328
33283329 err = drm_atomic_helper_commit_duplicated_state(state, &ctx);
33293330
3330− DRM_MODESET_LOCK_ALL_END(ctx, err);
3331+ DRM_MODESET_LOCK_ALL_END(dev, ctx, err);
33313332 drm_atomic_state_put(state);
33323333
33333334 return err;
drivers/gpu/drm/drm_bufs.c+1−1
@@ -537,7 +537,7 @@ int drm_legacy_rmmap_locked(struct drm_device *dev, struct drm_local_map *map) · 536 unmodified lines
537537 switch (map->type) {
538538 case _DRM_REGISTERS:
539539 iounmap(map->handle);
540− /* FALLTHROUGH */
540+ fallthrough;
541541 case _DRM_FRAME_BUFFER:
542542 arch_phys_wc_del(map->mtrr);
543543 break;
drivers/gpu/drm/drm_color_mgmt.c+1−1
@@ -294,7 +294,7 @@ int drm_mode_gamma_set_ioctl(struct drm_device *dev, · 293 unmodified lines
294294 crtc->gamma_size, &ctx);
295295
296296 out:
297− DRM_MODESET_LOCK_ALL_END(ctx, ret);
297+ DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
298298 return ret;
299299
300300 }
drivers/gpu/drm/drm_crtc.c+1−3
@@ -588,7 +588,6 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data, · 587 unmodified lines
588588 if (crtc_req->mode_valid && !drm_lease_held(file_priv, plane->base.id))
589589 return -EACCES;
590590
591− mutex_lock(&crtc->dev->mode_config.mutex);
592591 DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx,
593592 DRM_MODESET_ACQUIRE_INTERRUPTIBLE, ret);
594593
@@ -756,8 +755,7 @@ out: · 161 unmodified lines
756755 fb = NULL;
757756 mode = NULL;
758757
759− DRM_MODESET_LOCK_ALL_END(ctx, ret);
760− mutex_unlock(&crtc->dev->mode_config.mutex);
758+ DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
761759
762760 return ret;
763761 }
drivers/gpu/drm/drm_dp_helper.c+1−1
@@ -492,7 +492,7 @@ int drm_dp_downstream_max_bpc(const u8 dpcd[DP_RECEIVER_CAP_SIZE], · 491 unmodified lines
492492 case DP_DS_16BPC:
493493 return 16;
494494 }
495− /* fall through */
495+ fallthrough;
496496 default:
497497 return 0;
498498 }
drivers/gpu/drm/drm_dp_mst_topology.c+2−2
@@ -5040,8 +5040,8 @@ int drm_dp_mst_add_affected_dsc_crtcs(struct drm_atomic_state *state, struct drm · 5039 unmodified lines
50405040
50415041 crtc = conn_state->crtc;
50425042
5043− if (WARN_ON(!crtc))
5044− return -EINVAL;
5043+ if (!crtc)
5044+ continue;
50455045
50465046 if (!drm_dp_mst_dsc_aux_for_port(pos->port))
50475047 continue;
drivers/gpu/drm/drm_mode_object.c+2−2
@@ -428,7 +428,7 @@ int drm_mode_obj_get_properties_ioctl(struct drm_device *dev, void *data, · 427 unmodified lines
428428 out_unref:
429429 drm_mode_object_put(obj);
430430 out:
431− DRM_MODESET_LOCK_ALL_END(ctx, ret);
431+ DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
432432 return ret;
433433 }
434434
@@ -470,7 +470,7 @@ static int set_property_legacy(struct drm_mode_object *obj, · 35 unmodified lines
470470 break;
471471 }
472472 drm_property_change_valid_put(prop, ref);
473− DRM_MODESET_LOCK_ALL_END(ctx, ret);
473+ DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
474474
475475 return ret;
476476 }
drivers/gpu/drm/drm_modes.c+1−1
@@ -1930,7 +1930,7 @@ void drm_mode_convert_to_umode(struct drm_mode_modeinfo *out, · 1929 unmodified lines
19301930 default:
19311931 WARN(1, "Invalid aspect ratio (0%x) on mode\n",
19321932 in->picture_aspect_ratio);
1933− /* fall through */
1933+ fallthrough;
19341934 case HDMI_PICTURE_ASPECT_NONE:
19351935 out->flags |= DRM_MODE_FLAG_PIC_AR_NONE;
19361936 break;
drivers/gpu/drm/drm_plane.c+1−1
@@ -792,7 +792,7 @@ static int setplane_internal(struct drm_plane *plane, · 791 unmodified lines
792792 crtc_x, crtc_y, crtc_w, crtc_h,
793793 src_x, src_y, src_w, src_h, &ctx);
794794
795− DRM_MODESET_LOCK_ALL_END(ctx, ret);
795+ DRM_MODESET_LOCK_ALL_END(plane->dev, ctx, ret);
796796
797797 return ret;
798798 }
drivers/gpu/drm/etnaviv/etnaviv_gpu.c+9−2
@@ -337,9 +337,16 @@ static void etnaviv_hw_identify(struct etnaviv_gpu *gpu) · 336 unmodified lines
337337
338338 gpu->identity.model = gpu_read(gpu, VIVS_HI_CHIP_MODEL);
339339 gpu->identity.revision = gpu_read(gpu, VIVS_HI_CHIP_REV);
340− gpu->identity.product_id = gpu_read(gpu, VIVS_HI_CHIP_PRODUCT_ID);
341340 gpu->identity.customer_id = gpu_read(gpu, VIVS_HI_CHIP_CUSTOMER_ID);
342− gpu->identity.eco_id = gpu_read(gpu, VIVS_HI_CHIP_ECO_ID);
341+
342+ /*
343+ * Reading these two registers on GC600 rev 0x19 result in a
344+ * unhandled fault: external abort on non-linefetch
345+ */
346+ if (!etnaviv_is_model_rev(gpu, GC600, 0x19)) {
347+ gpu->identity.product_id = gpu_read(gpu, VIVS_HI_CHIP_PRODUCT_ID);
348+ gpu->identity.eco_id = gpu_read(gpu, VIVS_HI_CHIP_ECO_ID);
349+ }
343350
344351 /*
345352 * !!!! HACK ALERT !!!!
drivers/gpu/drm/etnaviv/etnaviv_sched.c+6−5
@@ -89,12 +89,15 @@ static void etnaviv_sched_timedout_job(struct drm_sched_job *sched_job) · 88 unmodified lines
8989 u32 dma_addr;
9090 int change;
9191
92+ /* block scheduler */
93+ drm_sched_stop(&gpu->sched, sched_job);
94+
9295 /*
9396 * If the GPU managed to complete this jobs fence, the timout is
9497 * spurious. Bail out.
9598 */
9699 if (dma_fence_is_signaled(submit->out_fence))
97− return;
100+ goto out_no_timeout;
98101
99102 /*
100103 * If the GPU is still making forward progress on the front-end (which
@@ -105,12 +108,9 @@ static void etnaviv_sched_timedout_job(struct drm_sched_job *sched_job) · 4 unmodified lines
105108 change = dma_addr - gpu->hangcheck_dma_addr;
106109 if (change < 0 || change > 16) {
107110 gpu->hangcheck_dma_addr = dma_addr;
108− return;
111+ goto out_no_timeout;
109112 }
110113
111− /* block scheduler */
112− drm_sched_stop(&gpu->sched, sched_job);
113−
114114 if(sched_job)
115115 drm_sched_increase_karma(sched_job);
116116
@@ -120,6 +120,7 @@ static void etnaviv_sched_timedout_job(struct drm_sched_job *sched_job) · 3 unmodified lines
120120
121121 drm_sched_resubmit_jobs(&gpu->sched);
122122
123+out_no_timeout:
123124 /* restart scheduler after GPU is usable again */
124125 drm_sched_start(&gpu->sched, true);
125126 }
drivers/gpu/drm/exynos/exynos_drm_dsi.c+5−5
@@ -987,10 +987,10 @@ static void exynos_dsi_send_to_fifo(struct exynos_dsi *dsi, · 986 unmodified lines
987987 switch (length) {
988988 case 3:
989989 reg |= payload[2] << 16;
990− /* Fall through */
990+ fallthrough;
991991 case 2:
992992 reg |= payload[1] << 8;
993− /* Fall through */
993+ fallthrough;
994994 case 1:
995995 reg |= payload[0];
996996 exynos_dsi_write(dsi, DSIM_PAYLOAD_REG, reg);
@@ -1038,7 +1038,7 @@ static void exynos_dsi_read_from_fifo(struct exynos_dsi *dsi, · 41 unmodified lines
10381038 payload[1] = reg >> 16;
10391039 ++xfer->rx_done;
10401040 }
1041− /* Fall through */
1041+ fallthrough;
10421042 case MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_1BYTE:
10431043 case MIPI_DSI_RX_DCS_SHORT_READ_RESPONSE_1BYTE:
10441044 payload[0] = reg >> 8;
@@ -1082,10 +1082,10 @@ static void exynos_dsi_read_from_fifo(struct exynos_dsi *dsi, · 37 unmodified lines
10821082 switch (length) {
10831083 case 3:
10841084 payload[2] = (reg >> 16) & 0xff;
1085− /* Fall through */
1085+ fallthrough;
10861086 case 2:
10871087 payload[1] = (reg >> 8) & 0xff;
1088− /* Fall through */
1088+ fallthrough;
10891089 case 1:
10901090 payload[0] = reg & 0xff;
10911091 }
drivers/gpu/drm/exynos/exynos_drm_fbdev.c+1−1
@@ -92,7 +92,7 @@ static int exynos_drm_fbdev_update(struct drm_fb_helper *helper, · 91 unmodified lines
9292 offset = fbi->var.xoffset * fb->format->cpp[0];
9393 offset += fbi->var.yoffset * fb->pitches[0];
9494
95− fbi->screen_base = exynos_gem->kvaddr + offset;
95+ fbi->screen_buffer = exynos_gem->kvaddr + offset;
9696 fbi->screen_size = size;
9797 fbi->fix.smem_len = size;
9898
drivers/gpu/drm/exynos/exynos_drm_gem.h+1−1
@@ -40,7 +40,7 @@ struct exynos_drm_gem { · 39 unmodified lines
4040 unsigned int flags;
4141 unsigned long size;
4242 void *cookie;
43− void __iomem *kvaddr;
43+ void *kvaddr;
4444 dma_addr_t dma_addr;
4545 unsigned long dma_attrs;
4646 struct sg_table *sgt;
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c+3−3
@@ -101,19 +101,19 @@ static void fsl_dcu_drm_plane_atomic_update(struct drm_plane *plane, · 100 unmodified lines
101101 break;
102102 case DRM_FORMAT_ARGB8888:
103103 alpha = DCU_LAYER_AB_WHOLE_FRAME;
104− /* fall-through */
104+ fallthrough;
105105 case DRM_FORMAT_XRGB8888:
106106 bpp = FSL_DCU_ARGB8888;
107107 break;
108108 case DRM_FORMAT_ARGB4444:
109109 alpha = DCU_LAYER_AB_WHOLE_FRAME;
110− /* fall-through */
110+ fallthrough;
111111 case DRM_FORMAT_XRGB4444:
112112 bpp = FSL_DCU_ARGB4444;
113113 break;
114114 case DRM_FORMAT_ARGB1555:
115115 alpha = DCU_LAYER_AB_WHOLE_FRAME;
116− /* fall-through */
116+ fallthrough;
117117 case DRM_FORMAT_XRGB1555:
118118 bpp = FSL_DCU_ARGB1555;
119119 break;
drivers/gpu/drm/i915/display/icl_dsi.c+3−3
@@ -712,7 +712,7 @@ gen11_dsi_configure_transcoder(struct intel_encoder *encoder, · 711 unmodified lines
712712 switch (intel_dsi->pixel_format) {
713713 default:
714714 MISSING_CASE(intel_dsi->pixel_format);
715− /* fallthrough */
715+ fallthrough;
716716 case MIPI_DSI_FMT_RGB565:
717717 tmp |= PIX_FMT_RGB565;
718718 break;
@@ -739,7 +739,7 @@ gen11_dsi_configure_transcoder(struct intel_encoder *encoder, · 20 unmodified lines
739739 switch (intel_dsi->video_mode_format) {
740740 default:
741741 MISSING_CASE(intel_dsi->video_mode_format);
742− /* fallthrough */
742+ fallthrough;
743743 case VIDEO_MODE_NON_BURST_WITH_SYNC_EVENTS:
744744 tmp |= VIDEO_MODE_SYNC_EVENT;
745745 break;
@@ -792,7 +792,7 @@ gen11_dsi_configure_transcoder(struct intel_encoder *encoder, · 46 unmodified lines
792792 switch (pipe) {
793793 default:
794794 MISSING_CASE(pipe);
795− /* fallthrough */
795+ fallthrough;
796796 case PIPE_A:
797797 tmp |= TRANS_DDI_EDP_INPUT_A_ON;
798798 break;
drivers/gpu/drm/i915/display/intel_bios.c+3−3
@@ -905,7 +905,7 @@ parse_psr(struct drm_i915_private *dev_priv, const struct bdb_header *bdb) · 904 unmodified lines
905905 drm_dbg_kms(&dev_priv->drm,
906906 "VBT tp1 wakeup time value %d is outside range[0-3], defaulting to max value 2500us\n",
907907 psr_table->tp1_wakeup_time);
908− /* fallthrough */
908+ fallthrough;
909909 case 2:
910910 dev_priv->vbt.psr.tp1_wakeup_time_us = 2500;
911911 break;
@@ -925,7 +925,7 @@ parse_psr(struct drm_i915_private *dev_priv, const struct bdb_header *bdb) · 13 unmodified lines
925925 drm_dbg_kms(&dev_priv->drm,
926926 "VBT tp2_tp3 wakeup time value %d is outside range[0-3], defaulting to max value 2500us\n",
927927 psr_table->tp2_tp3_wakeup_time);
928− /* fallthrough */
928+ fallthrough;
929929 case 2:
930930 dev_priv->vbt.psr.tp2_tp3_wakeup_time_us = 2500;
931931 break;
@@ -1775,7 +1775,7 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, · 843 unmodified lines
17751775 switch (child->hdmi_max_data_rate) {
17761776 default:
17771777 MISSING_CASE(child->hdmi_max_data_rate);
1778− /* fall through */
1778+ fallthrough;
17791779 case HDMI_MAX_DATA_RATE_PLATFORM:
17801780 max_tmds_clock = 0;
17811781 break;
drivers/gpu/drm/i915/display/intel_cdclk.c+5−5
@@ -326,7 +326,7 @@ static void pnv_get_cdclk(struct drm_i915_private *dev_priv, · 325 unmodified lines
326326 default:
327327 drm_err(&dev_priv->drm,
328328 "Unknown pnv display core clock 0x%04x\n", gcfgc);
329− /* fall through */
329+ fallthrough;
330330 case GC_DISPLAY_CLOCK_133_MHZ_PNV:
331331 cdclk_config->cdclk = 133333;
332332 break;
@@ -766,7 +766,7 @@ static void bdw_set_cdclk(struct drm_i915_private *dev_priv, · 433 unmodified lines
766766 switch (cdclk) {
767767 default:
768768 MISSING_CASE(cdclk);
769− /* fall through */
769+ fallthrough;
770770 case 337500:
771771 val |= LCPLL_CLK_FREQ_337_5_BDW;
772772 break;
@@ -1042,7 +1042,7 @@ static void skl_set_cdclk(struct drm_i915_private *dev_priv, · 269 unmodified lines
10421042 drm_WARN_ON(&dev_priv->drm,
10431043 cdclk != dev_priv->cdclk.hw.bypass);
10441044 drm_WARN_ON(&dev_priv->drm, vco != 0);
1045− /* fall through */
1045+ fallthrough;
10461046 case 308571:
10471047 case 337500:
10481048 freq_select = CDCLK_FREQ_337_308;
@@ -1333,7 +1333,7 @@ static void icl_readout_refclk(struct drm_i915_private *dev_priv, · 284 unmodified lines
13331333 switch (dssm) {
13341334 default:
13351335 MISSING_CASE(dssm);
1336− /* fall through */
1336+ fallthrough;
13371337 case ICL_DSSM_CDCLK_PLL_REFCLK_24MHz:
13381338 cdclk_config->ref = 24000;
13391339 break;
@@ -1561,7 +1561,7 @@ static void bxt_set_cdclk(struct drm_i915_private *dev_priv, · 221 unmodified lines
15611561 drm_WARN_ON(&dev_priv->drm,
15621562 cdclk != dev_priv->cdclk.hw.bypass);
15631563 drm_WARN_ON(&dev_priv->drm, vco != 0);
1564− /* fall through */
1564+ fallthrough;
15651565 case 2:
15661566 divider = BXT_CDCLK_CD2X_DIV_SEL_1;
15671567 break;
drivers/gpu/drm/i915/display/intel_combo_phy.c+5−5
@@ -52,7 +52,7 @@ cnl_get_procmon_ref_values(struct drm_i915_private *dev_priv, enum phy phy) · 51 unmodified lines
5252 switch (val & (PROCESS_INFO_MASK | VOLTAGE_INFO_MASK)) {
5353 default:
5454 MISSING_CASE(val);
55− /* fall through */
55+ fallthrough;
5656 case VOLTAGE_INFO_0_85V | PROCESS_INFO_DOT_0:
5757 procmon = &cnl_procmon_values[PROCMON_0_85V_DOT_0];
5858 break;
@@ -258,7 +258,7 @@ static bool phy_is_master(struct drm_i915_private *dev_priv, enum phy phy) · 199 unmodified lines
258258 static bool icl_combo_phy_verify_state(struct drm_i915_private *dev_priv,
259259 enum phy phy)
260260 {
261− bool ret;
261+ bool ret = true;
262262 u32 expected_val = 0;
263263
264264 if (!icl_combo_phy_enabled(dev_priv, phy))
@@ -276,7 +276,7 @@ static bool icl_combo_phy_verify_state(struct drm_i915_private *dev_priv, · 11 unmodified lines
276276 DCC_MODE_SELECT_CONTINUOSLY);
277277 }
278278
279− ret = cnl_verify_procmon_ref_values(dev_priv, phy);
279+ ret &= cnl_verify_procmon_ref_values(dev_priv, phy);
280280
281281 if (phy_is_master(dev_priv, phy)) {
282282 ret &= check_phy_reg(dev_priv, phy, ICL_PORT_COMP_DW8(phy),
@@ -320,7 +320,7 @@ void intel_combo_phy_power_up_lanes(struct drm_i915_private *dev_priv, · 37 unmodified lines
320320 break;
321321 default:
322322 MISSING_CASE(lane_count);
323− /* fall-through */
323+ fallthrough;
324324 case 4:
325325 lane_mask = PWR_UP_ALL_LANES;
326326 break;
@@ -337,7 +337,7 @@ void intel_combo_phy_power_up_lanes(struct drm_i915_private *dev_priv, · 10 unmodified lines
337337 break;
338338 default:
339339 MISSING_CASE(lane_count);
340− /* fall-through */
340+ fallthrough;
341341 case 4:
342342 lane_mask = PWR_UP_ALL_LANES;
343343 break;
drivers/gpu/drm/i915/display/intel_ddi.c+2−2
@@ -1888,7 +1888,7 @@ static void intel_ddi_get_encoder_pipes(struct intel_encoder *encoder, · 1887 unmodified lines
18881888 switch (tmp & TRANS_DDI_EDP_INPUT_MASK) {
18891889 default:
18901890 MISSING_CASE(tmp & TRANS_DDI_EDP_INPUT_MASK);
1891− /* fallthrough */
1891+ fallthrough;
18921892 case TRANS_DDI_EDP_INPUT_A_ON:
18931893 case TRANS_DDI_EDP_INPUT_A_ONOFF:
18941894 *pipe_mask = BIT(PIPE_A);
@@ -4268,7 +4268,7 @@ void intel_ddi_get_config(struct intel_encoder *encoder, · 2373 unmodified lines
42684268 pipe_config->hdmi_scrambling = true;
42694269 if (temp & TRANS_DDI_HIGH_TMDS_CHAR_RATE)
42704270 pipe_config->hdmi_high_tmds_clock_ratio = true;
4271− /* fall through */
4271+ fallthrough;
42724272 case TRANS_DDI_MODE_SELECT_DVI:
42734273 pipe_config->output_types |= BIT(INTEL_OUTPUT_HDMI);
42744274 pipe_config->lane_count = 4;
drivers/gpu/drm/i915/display/intel_display.c+11−11
@@ -2029,12 +2029,12 @@ intel_tile_width_bytes(const struct drm_framebuffer *fb, int color_plane) · 2028 unmodified lines
20292029 case I915_FORMAT_MOD_Y_TILED_CCS:
20302030 if (is_ccs_plane(fb, color_plane))
20312031 return 128;
2032− /* fall through */
2032+ fallthrough;
20332033 case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
20342034 case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
20352035 if (is_ccs_plane(fb, color_plane))
20362036 return 64;
2037− /* fall through */
2037+ fallthrough;
20382038 case I915_FORMAT_MOD_Y_TILED:
20392039 if (IS_GEN(dev_priv, 2) || HAS_128_BYTE_Y_TILING(dev_priv))
20402040 return 128;
@@ -2043,7 +2043,7 @@ intel_tile_width_bytes(const struct drm_framebuffer *fb, int color_plane) · 2 unmodified lines
20432043 case I915_FORMAT_MOD_Yf_TILED_CCS:
20442044 if (is_ccs_plane(fb, color_plane))
20452045 return 128;
2046− /* fall through */
2046+ fallthrough;
20472047 case I915_FORMAT_MOD_Yf_TILED:
20482048 switch (cpp) {
20492049 case 1:
@@ -2185,7 +2185,7 @@ static unsigned int intel_surf_alignment(const struct drm_framebuffer *fb, · 135 unmodified lines
21852185 case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
21862186 if (is_semiplanar_uv_plane(fb, color_plane))
21872187 return intel_tile_row_size(fb, color_plane);
2188− /* Fall-through */
2188+ fallthrough;
21892189 case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
21902190 return 16 * 1024;
21912191 case I915_FORMAT_MOD_Y_TILED_CCS:
@@ -2194,7 +2194,7 @@ static unsigned int intel_surf_alignment(const struct drm_framebuffer *fb, · 2 unmodified lines
21942194 if (INTEL_GEN(dev_priv) >= 12 &&
21952195 is_semiplanar_uv_plane(fb, color_plane))
21962196 return intel_tile_row_size(fb, color_plane);
2197− /* Fall-through */
2197+ fallthrough;
21982198 case I915_FORMAT_MOD_Yf_TILED:
21992199 return 1 * 1024 * 1024;
22002200 default:
@@ -6211,7 +6211,7 @@ static int skl_update_scaler_plane(struct intel_crtc_state *crtc_state, · 4010 unmodified lines
62116211 case DRM_FORMAT_ARGB16161616F:
62126212 if (INTEL_GEN(dev_priv) >= 11)
62136213 break;
6214− /* fall through */
6214+ fallthrough;
62156215 default:
62166216 drm_dbg_kms(&dev_priv->drm,
62176217 "[PLANE:%d:%s] FB:%d unsupported scaling format 0x%x\n",
@@ -10896,7 +10896,7 @@ static void hsw_get_ddi_pll(struct drm_i915_private *dev_priv, enum port port, · 4678 unmodified lines
1089610896 break;
1089710897 default:
1089810898 MISSING_CASE(ddi_pll_sel);
10899− /* fall through */
10899+ fallthrough;
1090010900 case PORT_CLK_SEL_NONE:
1090110901 return;
1090210902 }
@@ -10956,10 +10956,10 @@ static bool hsw_get_transcoder_state(struct intel_crtc *crtc, · 53 unmodified lines
1095610956 drm_WARN(dev, 1,
1095710957 "unknown pipe linked to transcoder %s\n",
1095810958 transcoder_name(panel_transcoder));
10959− /* fall through */
10959+ fallthrough;
1096010960 case TRANS_DDI_EDP_INPUT_A_ONOFF:
1096110961 force_thru = true;
10962− /* fall through */
10962+ fallthrough;
1096310963 case TRANS_DDI_EDP_INPUT_A_ON:
1096410964 trans_pipe = PIPE_A;
1096510965 break;
@@ -13183,7 +13183,7 @@ static bool check_digital_port_conflicts(struct intel_atomic_state *state) · 2217 unmodified lines
1318313183 case INTEL_OUTPUT_DDI:
1318413184 if (drm_WARN_ON(dev, !HAS_DDI(to_i915(dev))))
1318513185 break;
13186− /* else, fall through */
13186+ fallthrough;
1318713187 case INTEL_OUTPUT_DP:
1318813188 case INTEL_OUTPUT_HDMI:
1318913189 case INTEL_OUTPUT_EDP:
@@ -14930,7 +14930,7 @@ static int intel_atomic_check(struct drm_device *dev, · 1740 unmodified lines
1493014930 if (any_ms && !check_digital_port_conflicts(state)) {
1493114931 drm_dbg_kms(&dev_priv->drm,
1493214932 "rejecting conflicting digital port configuration\n");
14933− ret = EINVAL;
14933+ ret = -EINVAL;
1493414934 goto fail;
1493514935 }
1493614936
drivers/gpu/drm/i915/display/intel_display_debugfs.c+5−2
@@ -2044,9 +2044,12 @@ DEFINE_SHOW_ATTRIBUTE(i915_hdcp_sink_capability); · 2043 unmodified lines
20442044 static int i915_lpsp_capability_show(struct seq_file *m, void *data)
20452045 {
20462046 struct drm_connector *connector = m->private;
2047− struct intel_encoder *encoder =
2048− intel_attached_encoder(to_intel_connector(connector));
20492047 struct drm_i915_private *i915 = to_i915(connector->dev);
2048+ struct intel_encoder *encoder;
2049+
2050+ encoder = intel_attached_encoder(to_intel_connector(connector));
2051+ if (!encoder)
2052+ return -ENODEV;
20502053
20512054 if (connector->status != connector_status_connected)
20522055 return -ENODEV;
drivers/gpu/drm/i915/display/intel_display_power.c+7−7
@@ -4146,6 +4146,12 @@ static const struct i915_power_well_desc tgl_power_wells[] = { · 4145 unmodified lines
41464146 .hsw.idx = TGL_PW_CTL_IDX_DDI_TC6,
41474147 },
41484148 },
4149+ {
4150+ .name = "TC cold off",
4151+ .domains = TGL_TC_COLD_OFF_POWER_DOMAINS,
4152+ .ops = &tgl_tc_cold_off_ops,
4153+ .id = DISP_PW_ID_NONE,
4154+ },
41494155 {
41504156 .name = "AUX A",
41514157 .domains = TGL_AUX_A_IO_POWER_DOMAINS,
@@ -4332,12 +4338,6 @@ static const struct i915_power_well_desc tgl_power_wells[] = { · 180 unmodified lines
43324338 .hsw.irq_pipe_mask = BIT(PIPE_D),
43334339 },
43344340 },
4335− {
4336− .name = "TC cold off",
4337− .domains = TGL_TC_COLD_OFF_POWER_DOMAINS,
4338− .ops = &tgl_tc_cold_off_ops,
4339− .id = DISP_PW_ID_NONE,
4340− },
43414341 };
43424342
43434343 static const struct i915_power_well_desc rkl_power_wells[] = {
@@ -5240,10 +5240,10 @@ struct buddy_page_mask { · 896 unmodified lines
52405240 };
52415241
52425242 static const struct buddy_page_mask tgl_buddy_page_masks[] = {
5243− { .num_channels = 1, .type = INTEL_DRAM_LPDDR4, .page_mask = 0xE },
52445243 { .num_channels = 1, .type = INTEL_DRAM_DDR4, .page_mask = 0xF },
52455244 { .num_channels = 2, .type = INTEL_DRAM_LPDDR4, .page_mask = 0x1C },
52465245 { .num_channels = 2, .type = INTEL_DRAM_DDR4, .page_mask = 0x1F },
5246+ { .num_channels = 4, .type = INTEL_DRAM_LPDDR4, .page_mask = 0x38 },
52475247 {}
52485248 };
52495249
drivers/gpu/drm/i915/display/intel_dpll_mgr.c+4−4
@@ -892,7 +892,7 @@ static int hsw_ddi_wrpll_get_freq(struct drm_i915_private *dev_priv, · 891 unmodified lines
892892 refclk = dev_priv->dpll.ref_clks.nssc;
893893 break;
894894 }
895− /* fall through */
895+ fallthrough;
896896 case WRPLL_REF_PCH_SSC:
897897 /*
898898 * We could calculate spread here, but our checking
@@ -2977,7 +2977,7 @@ static bool icl_calc_tbt_pll(struct intel_crtc_state *crtc_state, · 2078 unmodified lines
29772977 switch (dev_priv->dpll.ref_clks.nssc) {
29782978 default:
29792979 MISSING_CASE(dev_priv->dpll.ref_clks.nssc);
2980− /* fall-through */
2980+ fallthrough;
29812981 case 19200:
29822982 *pll_params = tgl_tbt_pll_19_2MHz_values;
29832983 break;
@@ -2992,7 +2992,7 @@ static bool icl_calc_tbt_pll(struct intel_crtc_state *crtc_state, · 8 unmodified lines
29922992 switch (dev_priv->dpll.ref_clks.nssc) {
29932993 default:
29942994 MISSING_CASE(dev_priv->dpll.ref_clks.nssc);
2995− /* fall-through */
2995+ fallthrough;
29962996 case 19200:
29972997 case 38400:
29982998 *pll_params = icl_tbt_pll_19_2MHz_values;
@@ -3120,7 +3120,7 @@ static bool icl_mg_pll_find_divisors(int clock_khz, bool is_dp, bool use_ssc, · 121 unmodified lines
31203120 switch (div1) {
31213121 default:
31223122 MISSING_CASE(div1);
3123− /* fall through */
3123+ fallthrough;
31243124 case 2:
31253125 hsdiv = MG_CLKTOP2_HSCLKCTL_HSDIV_RATIO_2;
31263126 break;
drivers/gpu/drm/i915/display/intel_hdcp.c+26−6
@@ -336,8 +336,10 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector, · 335 unmodified lines
336336
337337 /* Fill up the empty slots in sha_text and write it out */
338338 sha_empty = sizeof(sha_text) - sha_leftovers;
339− for (j = 0; j < sha_empty; j++)
340− sha_text |= ksv[j] << ((sizeof(sha_text) - j - 1) * 8);
339+ for (j = 0; j < sha_empty; j++) {
340+ u8 off = ((sizeof(sha_text) - j - 1 - sha_leftovers) * 8);
341+ sha_text |= ksv[j] << off;
342+ }
341343
342344 ret = intel_write_sha_text(dev_priv, sha_text);
343345 if (ret < 0)
@@ -435,7 +437,7 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector, · 91 unmodified lines
435437 /* Write 32 bits of text */
436438 intel_de_write(dev_priv, HDCP_REP_CTL,
437439 rep_ctl | HDCP_SHA1_TEXT_32);
438− sha_text |= bstatus[0] << 24 | bstatus[1] << 16;
440+ sha_text |= bstatus[0] << 8 | bstatus[1];
439441 ret = intel_write_sha_text(dev_priv, sha_text);
440442 if (ret < 0)
441443 return ret;
@@ -450,17 +452,29 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector, · 8 unmodified lines
450452 return ret;
451453 sha_idx += sizeof(sha_text);
452454 }
455+
456+ /*
457+ * Terminate the SHA-1 stream by hand. For the other leftover
458+ * cases this is appended by the hardware.
459+ */
460+ intel_de_write(dev_priv, HDCP_REP_CTL,
461+ rep_ctl | HDCP_SHA1_TEXT_32);
462+ sha_text = DRM_HDCP_SHA1_TERMINATOR << 24;
463+ ret = intel_write_sha_text(dev_priv, sha_text);
464+ if (ret < 0)
465+ return ret;
466+ sha_idx += sizeof(sha_text);
453467 } else if (sha_leftovers == 3) {
454− /* Write 32 bits of text */
468+ /* Write 32 bits of text (filled from LSB) */
455469 intel_de_write(dev_priv, HDCP_REP_CTL,
456470 rep_ctl | HDCP_SHA1_TEXT_32);
457− sha_text |= bstatus[0] << 24;
471+ sha_text |= bstatus[0];
458472 ret = intel_write_sha_text(dev_priv, sha_text);
459473 if (ret < 0)
460474 return ret;
461475 sha_idx += sizeof(sha_text);
462476
463− /* Write 8 bits of text, 24 bits of M0 */
477+ /* Write 8 bits of text (filled from LSB), 24 bits of M0 */
464478 intel_de_write(dev_priv, HDCP_REP_CTL,
465479 rep_ctl | HDCP_SHA1_TEXT_8);
466480 ret = intel_write_sha_text(dev_priv, bstatus[1]);
@@ -781,6 +795,7 @@ static int _intel_hdcp_disable(struct intel_connector *connector) · 314 unmodified lines
781795 struct intel_hdcp *hdcp = &connector->hdcp;
782796 enum port port = dig_port->base.port;
783797 enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
798+ u32 repeater_ctl;
784799 int ret;
785800
786801 drm_dbg_kms(&dev_priv->drm, "[%s:%d] HDCP is being disabled...\n",
@@ -796,6 +811,11 @@ static int _intel_hdcp_disable(struct intel_connector *connector) · 9 unmodified lines
796811 return -ETIMEDOUT;
797812 }
798813
814+ repeater_ctl = intel_hdcp_get_repeater_ctl(dev_priv, cpu_transcoder,
815+ port);
816+ intel_de_write(dev_priv, HDCP_REP_CTL,
817+ intel_de_read(dev_priv, HDCP_REP_CTL) & ~repeater_ctl);
818+
799819 ret = hdcp->shim->toggle_signalling(dig_port, false);
800820 if (ret) {
801821 drm_err(&dev_priv->drm, "Failed to disable HDCP signalling\n");
drivers/gpu/drm/i915/display/intel_panel.c+1−1
@@ -229,7 +229,7 @@ int intel_pch_panel_fitting(struct intel_crtc_state *crtc_state, · 228 unmodified lines
229229 case DRM_MODE_SCALE_NONE:
230230 WARN_ON(adjusted_mode->crtc_hdisplay != crtc_state->pipe_src_w);
231231 WARN_ON(adjusted_mode->crtc_vdisplay != crtc_state->pipe_src_h);
232− /* fall through */
232+ fallthrough;
233233 case DRM_MODE_SCALE_FULLSCREEN:
234234 x = y = 0;
235235 width = adjusted_mode->crtc_hdisplay;
drivers/gpu/drm/i915/display/intel_sdvo.c+6−6
@@ -1531,7 +1531,7 @@ static void intel_sdvo_pre_enable(struct intel_atomic_state *state, · 1530 unmodified lines
15311531 default:
15321532 drm_WARN(&dev_priv->drm, 1,
15331533 "unknown pixel multiplier specified\n");
1534− /* fall through */
1534+ fallthrough;
15351535 case 1: rate = SDVO_CLOCK_RATE_MULT_1X; break;
15361536 case 2: rate = SDVO_CLOCK_RATE_MULT_2X; break;
15371537 case 4: rate = SDVO_CLOCK_RATE_MULT_4X; break;
@@ -2549,19 +2549,19 @@ intel_sdvo_guess_ddc_bus(struct intel_sdvo *sdvo) · 1011 unmodified lines
25492549 switch (sdvo->controlled_output) {
25502550 case SDVO_OUTPUT_LVDS1:
25512551 mask |= SDVO_OUTPUT_LVDS1;
2552− /* fall through */
2552+ fallthrough;
25532553 case SDVO_OUTPUT_LVDS0:
25542554 mask |= SDVO_OUTPUT_LVDS0;
2555− /* fall through */
2555+ fallthrough;
25562556 case SDVO_OUTPUT_TMDS1:
25572557 mask |= SDVO_OUTPUT_TMDS1;
2558− /* fall through */
2558+ fallthrough;
25592559 case SDVO_OUTPUT_TMDS0:
25602560 mask |= SDVO_OUTPUT_TMDS0;
2561− /* fall through */
2561+ fallthrough;
25622562 case SDVO_OUTPUT_RGB1:
25632563 mask |= SDVO_OUTPUT_RGB1;
2564− /* fall through */
2564+ fallthrough;
25652565 case SDVO_OUTPUT_RGB0:
25662566 mask |= SDVO_OUTPUT_RGB0;
25672567 break;
drivers/gpu/drm/i915/display/intel_sprite.c+11−11
@@ -2147,7 +2147,7 @@ static int skl_plane_check_fb(const struct intel_crtc_state *crtc_state, · 2146 unmodified lines
21472147 case DRM_FORMAT_RGB565:
21482148 if (INTEL_GEN(dev_priv) >= 11)
21492149 break;
2150− /* fall through */
2150+ fallthrough;
21512151 case DRM_FORMAT_C8:
21522152 case DRM_FORMAT_XRGB16161616F:
21532153 case DRM_FORMAT_XBGR16161616F:
@@ -2702,7 +2702,7 @@ static bool g4x_sprite_format_mod_supported(struct drm_plane *_plane, · 548 unmodified lines
27022702 if (modifier == DRM_FORMAT_MOD_LINEAR ||
27032703 modifier == I915_FORMAT_MOD_X_TILED)
27042704 return true;
2705− /* fall through */
2705+ fallthrough;
27062706 default:
27072707 return false;
27082708 }
@@ -2733,7 +2733,7 @@ static bool snb_sprite_format_mod_supported(struct drm_plane *_plane, · 24 unmodified lines
27332733 if (modifier == DRM_FORMAT_MOD_LINEAR ||
27342734 modifier == I915_FORMAT_MOD_X_TILED)
27352735 return true;
2736− /* fall through */
2736+ fallthrough;
27372737 default:
27382738 return false;
27392739 }
@@ -2768,7 +2768,7 @@ static bool vlv_sprite_format_mod_supported(struct drm_plane *_plane, · 28 unmodified lines
27682768 if (modifier == DRM_FORMAT_MOD_LINEAR ||
27692769 modifier == I915_FORMAT_MOD_X_TILED)
27702770 return true;
2771− /* fall through */
2771+ fallthrough;
27722772 default:
27732773 return false;
27742774 }
@@ -2801,7 +2801,7 @@ static bool skl_plane_format_mod_supported(struct drm_plane *_plane, · 26 unmodified lines
28012801 case DRM_FORMAT_ABGR8888:
28022802 if (is_ccs_modifier(modifier))
28032803 return true;
2804− /* fall through */
2804+ fallthrough;
28052805 case DRM_FORMAT_RGB565:
28062806 case DRM_FORMAT_XRGB2101010:
28072807 case DRM_FORMAT_XBGR2101010:
@@ -2819,7 +2819,7 @@ static bool skl_plane_format_mod_supported(struct drm_plane *_plane, · 11 unmodified lines
28192819 case DRM_FORMAT_XVYU2101010:
28202820 if (modifier == I915_FORMAT_MOD_Yf_TILED)
28212821 return true;
2822− /* fall through */
2822+ fallthrough;
28232823 case DRM_FORMAT_C8:
28242824 case DRM_FORMAT_XBGR16161616F:
28252825 case DRM_FORMAT_ABGR16161616F:
@@ -2834,7 +2834,7 @@ static bool skl_plane_format_mod_supported(struct drm_plane *_plane, · 8 unmodified lines
28342834 modifier == I915_FORMAT_MOD_X_TILED ||
28352835 modifier == I915_FORMAT_MOD_Y_TILED)
28362836 return true;
2837− /* fall through */
2837+ fallthrough;
28382838 default:
28392839 return false;
28402840 }
@@ -2860,7 +2860,7 @@ static bool gen12_plane_format_mod_supported(struct drm_plane *_plane, · 19 unmodified lines
28602860 case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
28612861 if (!gen12_plane_supports_mc_ccs(dev_priv, plane->id))
28622862 return false;
2863− /* fall through */
2863+ fallthrough;
28642864 case DRM_FORMAT_MOD_LINEAR:
28652865 case I915_FORMAT_MOD_X_TILED:
28662866 case I915_FORMAT_MOD_Y_TILED:
@@ -2877,7 +2877,7 @@ static bool gen12_plane_format_mod_supported(struct drm_plane *_plane, · 10 unmodified lines
28772877 case DRM_FORMAT_ABGR8888:
28782878 if (is_ccs_modifier(modifier))
28792879 return true;
2880− /* fall through */
2880+ fallthrough;
28812881 case DRM_FORMAT_YUYV:
28822882 case DRM_FORMAT_YVYU:
28832883 case DRM_FORMAT_UYVY:
@@ -2889,7 +2889,7 @@ static bool gen12_plane_format_mod_supported(struct drm_plane *_plane, · 5 unmodified lines
28892889 case DRM_FORMAT_P016:
28902890 if (modifier == I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS)
28912891 return true;
2892− /* fall through */
2892+ fallthrough;
28932893 case DRM_FORMAT_RGB565:
28942894 case DRM_FORMAT_XRGB2101010:
28952895 case DRM_FORMAT_XBGR2101010:
@@ -2910,7 +2910,7 @@ static bool gen12_plane_format_mod_supported(struct drm_plane *_plane, · 14 unmodified lines
29102910 modifier == I915_FORMAT_MOD_X_TILED ||
29112911 modifier == I915_FORMAT_MOD_Y_TILED)
29122912 return true;
2913− /* fall through */
2913+ fallthrough;
29142914 default:
29152915 return false;
29162916 }
drivers/gpu/drm/i915/display/intel_tc.c+1−1
@@ -159,7 +159,7 @@ int intel_tc_port_fia_max_lane_count(struct intel_digital_port *dig_port) · 158 unmodified lines
159159 switch (lane_mask) {
160160 default:
161161 MISSING_CASE(lane_mask);
162− /* fall-through */
162+ fallthrough;
163163 case 0x1:
164164 case 0x2:
165165 case 0x4:
drivers/gpu/drm/i915/gem/i915_gem_mman.c+1−1
@@ -209,7 +209,7 @@ static vm_fault_t i915_error_to_vmf_fault(int err) · 208 unmodified lines
209209 switch (err) {
210210 default:
211211 WARN_ONCE(err, "unhandled error in %s: %i\n", __func__, err);
212− /* fallthrough */
212+ fallthrough;
213213 case -EIO: /* shmemfs failure from swap device */
214214 case -EFAULT: /* purged object */
215215 case -ENODEV: /* bad object, how did you get here! */
drivers/gpu/drm/i915/gem/i915_gem_pages.c+1−1
@@ -276,7 +276,7 @@ static void *i915_gem_object_map(struct drm_i915_gem_object *obj, · 275 unmodified lines
276276 switch (type) {
277277 default:
278278 MISSING_CASE(type);
279− /* fallthrough - to use PAGE_KERNEL anyway */
279+ fallthrough; /* to use PAGE_KERNEL anyway */
280280 case I915_MAP_WB:
281281 pgprot = PAGE_KERNEL;
282282 break;
drivers/gpu/drm/i915/gem/i915_gem_stolen.c+3−3
@@ -249,7 +249,7 @@ static void vlv_get_stolen_reserved(struct drm_i915_private *i915, · 248 unmodified lines
249249 switch (reg_val & GEN7_STOLEN_RESERVED_SIZE_MASK) {
250250 default:
251251 MISSING_CASE(reg_val & GEN7_STOLEN_RESERVED_SIZE_MASK);
252− /* fall through */
252+ fallthrough;
253253 case GEN7_STOLEN_RESERVED_1M:
254254 *size = 1024 * 1024;
255255 break;
@@ -416,7 +416,7 @@ static int i915_gem_init_stolen(struct drm_i915_private *i915) · 160 unmodified lines
416416 case 4:
417417 if (!IS_G4X(i915))
418418 break;
419− /* fall through */
419+ fallthrough;
420420 case 5:
421421 g4x_get_stolen_reserved(i915, uncore,
422422 &reserved_base, &reserved_size);
@@ -445,7 +445,7 @@ static int i915_gem_init_stolen(struct drm_i915_private *i915) · 22 unmodified lines
445445 break;
446446 default:
447447 MISSING_CASE(INTEL_GEN(i915));
448− /* fall-through */
448+ fallthrough;
449449 case 11:
450450 case 12:
451451 icl_get_stolen_reserved(i915, uncore,
drivers/gpu/drm/i915/gem/i915_gem_userptr.c+0−8
@@ -596,14 +596,6 @@ static int i915_gem_userptr_get_pages(struct drm_i915_gem_object *obj) · 595 unmodified lines
596596 GFP_KERNEL |
597597 __GFP_NORETRY |
598598 __GFP_NOWARN);
599− /*
600− * Using __get_user_pages_fast() with a read-only
601− * access is questionable. A read-only page may be
602− * COW-broken, and then this might end up giving
603− * the wrong side of the COW..
604− *
605− * We may or may not care.
606− */
607599 if (pvec) {
608600 /* defer to worker if malloc fails */
609601 if (!i915_gem_object_is_readonly(obj))
drivers/gpu/drm/i915/gt/intel_engine_cs.c+1−1
@@ -213,7 +213,7 @@ u32 intel_engine_context_size(struct intel_gt *gt, u8 class) · 212 unmodified lines
213213 break;
214214 default:
215215 MISSING_CASE(class);
216− /* fall through */
216+ fallthrough;
217217 case VIDEO_DECODE_CLASS:
218218 case VIDEO_ENHANCEMENT_CLASS:
219219 case COPY_ENGINE_CLASS:
drivers/gpu/drm/i915/gt/intel_ggtt.c+1−1
@@ -1437,7 +1437,7 @@ i915_get_ggtt_vma_pages(struct i915_vma *vma) · 1436 unmodified lines
14371437 switch (vma->ggtt_view.type) {
14381438 default:
14391439 GEM_BUG_ON(vma->ggtt_view.type);
1440− /* fall through */
1440+ fallthrough;
14411441 case I915_GGTT_VIEW_NORMAL:
14421442 vma->pages = vma->obj->mm.pages;
14431443 return 0;
drivers/gpu/drm/i915/gt/intel_ring_submission.c+1−1
@@ -100,7 +100,7 @@ static void set_hwsp(struct intel_engine_cs *engine, u32 offset) · 99 unmodified lines
100100 */
101101 default:
102102 GEM_BUG_ON(engine->id);
103− /* fallthrough */
103+ fallthrough;
104104 case RCS0:
105105 hwsp = RENDER_HWS_PGA_GEN7;
106106 break;
drivers/gpu/drm/i915/gvt/cfg_space.c+24−0
@@ -70,6 +70,7 @@ static void vgpu_pci_cfg_mem_write(struct intel_vgpu *vgpu, unsigned int off, · 69 unmodified lines
7070 {
7171 u8 *cfg_base = vgpu_cfg_space(vgpu);
7272 u8 mask, new, old;
73+ pci_power_t pwr;
7374 int i = 0;
7475
7576 for (; i < bytes && (off + i < sizeof(pci_cfg_space_rw_bmp)); i++) {
@@ -91,6 +92,15 @@ static void vgpu_pci_cfg_mem_write(struct intel_vgpu *vgpu, unsigned int off, · 15 unmodified lines
9192 /* For other configuration space directly copy as it is. */
9293 if (i < bytes)
9394 memcpy(cfg_base + off + i, src + i, bytes - i);
95+
96+ if (off == vgpu->cfg_space.pmcsr_off && vgpu->cfg_space.pmcsr_off) {
97+ pwr = (pci_power_t __force)(*(u16*)(&vgpu_cfg_space(vgpu)[off])
98+ & PCI_PM_CTRL_STATE_MASK);
99+ if (pwr == PCI_D3hot)
100+ vgpu->d3_entered = true;
101+ gvt_dbg_core("vgpu-%d power status changed to %d\n",
102+ vgpu->id, pwr);
103+ }
94104 }
95105
96106 /**
@@ -366,6 +376,7 @@ void intel_vgpu_init_cfg_space(struct intel_vgpu *vgpu, · 269 unmodified lines
366376 struct intel_gvt *gvt = vgpu->gvt;
367377 const struct intel_gvt_device_info *info = &gvt->device_info;
368378 u16 *gmch_ctl;
379+ u8 next;
369380
370381 memcpy(vgpu_cfg_space(vgpu), gvt->firmware.cfg_space,
371382 info->cfg_space_size);
@@ -401,6 +412,19 @@ void intel_vgpu_init_cfg_space(struct intel_vgpu *vgpu, · 29 unmodified lines
401412 pci_resource_len(gvt->gt->i915->drm.pdev, 2);
402413
403414 memset(vgpu_cfg_space(vgpu) + PCI_ROM_ADDRESS, 0, 4);
415+
416+ /* PM Support */
417+ vgpu->cfg_space.pmcsr_off = 0;
418+ if (vgpu_cfg_space(vgpu)[PCI_STATUS] & PCI_STATUS_CAP_LIST) {
419+ next = vgpu_cfg_space(vgpu)[PCI_CAPABILITY_LIST];
420+ do {
421+ if (vgpu_cfg_space(vgpu)[next + PCI_CAP_LIST_ID] == PCI_CAP_ID_PM) {
422+ vgpu->cfg_space.pmcsr_off = next + PCI_PM_CTRL;
423+ break;
424+ }
425+ next = vgpu_cfg_space(vgpu)[next + PCI_CAP_LIST_NEXT];
426+ } while (next);
427+ }
404428 }
405429
406430 /**
drivers/gpu/drm/i915/gvt/gtt.c+1−1
@@ -2501,7 +2501,7 @@ int intel_vgpu_init_gtt(struct intel_vgpu *vgpu) · 2500 unmodified lines
25012501 return create_scratch_page_tree(vgpu);
25022502 }
25032503
2504−static void intel_vgpu_destroy_all_ppgtt_mm(struct intel_vgpu *vgpu)
2504+void intel_vgpu_destroy_all_ppgtt_mm(struct intel_vgpu *vgpu)
25052505 {
25062506 struct list_head *pos, *n;
25072507 struct intel_vgpu_mm *mm;
drivers/gpu/drm/i915/gvt/gtt.h+2−0
@@ -279,4 +279,6 @@ int intel_vgpu_emulate_ggtt_mmio_read(struct intel_vgpu *vgpu, · 278 unmodified lines
279279 int intel_vgpu_emulate_ggtt_mmio_write(struct intel_vgpu *vgpu,
280280 unsigned int off, void *p_data, unsigned int bytes);
281281
282+void intel_vgpu_destroy_all_ppgtt_mm(struct intel_vgpu *vgpu);
283+
282284 #endif /* _GVT_GTT_H_ */
drivers/gpu/drm/i915/gvt/gvt.h+3−0
@@ -106,6 +106,7 @@ struct intel_vgpu_pci_bar { · 105 unmodified lines
106106 struct intel_vgpu_cfg_space {
107107 unsigned char virtual_cfg_space[PCI_CFG_SPACE_EXP_SIZE];
108108 struct intel_vgpu_pci_bar bar[INTEL_GVT_MAX_BAR_NUM];
109+ u32 pmcsr_off;
109110 };
110111
111112 #define vgpu_cfg_space(vgpu) ((vgpu)->cfg_space.virtual_cfg_space)
@@ -198,6 +199,8 @@ struct intel_vgpu { · 86 unmodified lines
198199 struct intel_vgpu_submission submission;
199200 struct radix_tree_root page_track_tree;
200201 u32 hws_pga[I915_NUM_ENGINES];
202+ /* Set on PCI_D3, reset on DMLR, not reflecting the actual PM state */
203+ bool d3_entered;
201204
202205 struct dentry *debugfs;
203206
drivers/gpu/drm/i915/gvt/handlers.c+1−1
@@ -1226,7 +1226,7 @@ static int handle_g2v_notification(struct intel_vgpu *vgpu, int notification) · 1225 unmodified lines
12261226 switch (notification) {
12271227 case VGT_G2V_PPGTT_L3_PAGE_TABLE_CREATE:
12281228 root_entry_type = GTT_TYPE_PPGTT_ROOT_L3_ENTRY;
1229− /* fall through */
1229+ fallthrough;
12301230 case VGT_G2V_PPGTT_L4_PAGE_TABLE_CREATE:
12311231 mm = intel_vgpu_get_ppgtt_mm(vgpu, root_entry_type, pdps);
12321232 return PTR_ERR_OR_ZERO(mm);
drivers/gpu/drm/i915/gvt/vgpu.c+17−3
@@ -257,6 +257,7 @@ void intel_gvt_release_vgpu(struct intel_vgpu *vgpu) · 256 unmodified lines
257257 intel_gvt_deactivate_vgpu(vgpu);
258258
259259 mutex_lock(&vgpu->vgpu_lock);
260+ vgpu->d3_entered = false;
260261 intel_vgpu_clean_workloads(vgpu, ALL_ENGINES);
261262 intel_vgpu_dmabuf_cleanup(vgpu);
262263 mutex_unlock(&vgpu->vgpu_lock);
@@ -393,6 +394,7 @@ static struct intel_vgpu *__intel_gvt_create_vgpu(struct intel_gvt *gvt, · 130 unmodified lines
393394 INIT_RADIX_TREE(&vgpu->page_track_tree, GFP_KERNEL);
394395 idr_init(&vgpu->object_idr);
395396 intel_vgpu_init_cfg_space(vgpu, param->primary);
397+ vgpu->d3_entered = false;
396398
397399 ret = intel_vgpu_init_mmio(vgpu);
398400 if (ret)
@@ -557,10 +559,15 @@ void intel_gvt_reset_vgpu_locked(struct intel_vgpu *vgpu, bool dmlr, · 158 unmodified lines
557559 /* full GPU reset or device model level reset */
558560 if (engine_mask == ALL_ENGINES || dmlr) {
559561 intel_vgpu_select_submission_ops(vgpu, ALL_ENGINES, 0);
560− intel_vgpu_invalidate_ppgtt(vgpu);
562+ if (engine_mask == ALL_ENGINES)
563+ intel_vgpu_invalidate_ppgtt(vgpu);
561564 /*fence will not be reset during virtual reset */
562565 if (dmlr) {
563− intel_vgpu_reset_gtt(vgpu);
566+ if(!vgpu->d3_entered) {
567+ intel_vgpu_invalidate_ppgtt(vgpu);
568+ intel_vgpu_destroy_all_ppgtt_mm(vgpu);
569+ }
570+ intel_vgpu_reset_ggtt(vgpu, true);
564571 intel_vgpu_reset_resource(vgpu);
565572 }
566573
@@ -572,7 +579,14 @@ void intel_gvt_reset_vgpu_locked(struct intel_vgpu *vgpu, bool dmlr, · 5 unmodified lines
572579 intel_vgpu_reset_cfg_space(vgpu);
573580 /* only reset the failsafe mode when dmlr reset */
574581 vgpu->failsafe = false;
575− vgpu->pv_notified = false;
582+ /*
583+ * PCI_D0 is set before dmlr, so reset d3_entered here
584+ * after done using.
585+ */
586+ if(vgpu->d3_entered)
587+ vgpu->d3_entered = false;
588+ else
589+ vgpu->pv_notified = false;
576590 }
577591 }
578592
drivers/gpu/drm/i915/i915_cmd_parser.c+10−4
@@ -1204,6 +1204,12 @@ static u32 *copy_batch(struct drm_i915_gem_object *dst_obj, · 1203 unmodified lines
12041204 return dst;
12051205 }
12061206
1207+static inline bool cmd_desc_is(const struct drm_i915_cmd_descriptor * const desc,
1208+ const u32 cmd)
1209+{
1210+ return desc->cmd.value == (cmd & desc->cmd.mask);
1211+}
1212+
12071213 static bool check_cmd(const struct intel_engine_cs *engine,
12081214 const struct drm_i915_cmd_descriptor *desc,
12091215 const u32 *cmd, u32 length)
@@ -1242,19 +1248,19 @@ static bool check_cmd(const struct intel_engine_cs *engine, · 32 unmodified lines
12421248 * allowed mask/value pair given in the whitelist entry.
12431249 */
12441250 if (reg->mask) {
1245− if (desc->cmd.value == MI_LOAD_REGISTER_MEM) {
1251+ if (cmd_desc_is(desc, MI_LOAD_REGISTER_MEM)) {
12461252 DRM_DEBUG("CMD: Rejected LRM to masked register 0x%08X\n",
12471253 reg_addr);
12481254 return false;
12491255 }
12501256
1251− if (desc->cmd.value == MI_LOAD_REGISTER_REG) {
1257+ if (cmd_desc_is(desc, MI_LOAD_REGISTER_REG)) {
12521258 DRM_DEBUG("CMD: Rejected LRR to masked register 0x%08X\n",
12531259 reg_addr);
12541260 return false;
12551261 }
12561262
1257− if (desc->cmd.value == MI_LOAD_REGISTER_IMM(1) &&
1263+ if (cmd_desc_is(desc, MI_LOAD_REGISTER_IMM(1)) &&
12581264 (offset + 2 > length ||
12591265 (cmd[offset + 1] & reg->mask) != reg->value)) {
12601266 DRM_DEBUG("CMD: Rejected LRI to masked register 0x%08X\n",
@@ -1478,7 +1484,7 @@ int intel_engine_cmd_parser(struct intel_engine_cs *engine, · 217 unmodified lines
14781484 break;
14791485 }
14801486
1481− if (desc->cmd.value == MI_BATCH_BUFFER_START) {
1487+ if (cmd_desc_is(desc, MI_BATCH_BUFFER_START)) {
14821488 ret = check_bbstart(cmd, offset, length, batch_length,
14831489 batch_addr, shadow_addr,
14841490 jump_whitelist);
drivers/gpu/drm/i915/i915_gpu_error.c+1−1
@@ -1159,7 +1159,7 @@ static void engine_record_registers(struct intel_engine_coredump *ee) · 1158 unmodified lines
11591159 switch (engine->id) {
11601160 default:
11611161 MISSING_CASE(engine->id);
1162− /* fall through */
1162+ fallthrough;
11631163 case RCS0:
11641164 mmio = RENDER_HWS_PGA_GEN7;
11651165 break;
drivers/gpu/drm/i915/i915_pmu.c+3−6
@@ -445,8 +445,6 @@ static void i915_pmu_event_destroy(struct perf_event *event) · 444 unmodified lines
445445 container_of(event->pmu, typeof(*i915), pmu.base);
446446
447447 drm_WARN_ON(&i915->drm, event->parent);
448−
449− module_put(THIS_MODULE);
450448 }
451449
452450 static int
@@ -476,7 +474,7 @@ config_status(struct drm_i915_private *i915, u64 config) · 23 unmodified lines
476474 if (IS_VALLEYVIEW(i915) || IS_CHERRYVIEW(i915))
477475 /* Requires a mutex for sampling! */
478476 return -ENODEV;
479− /* Fall-through. */
477+ fallthrough;
480478 case I915_PMU_REQUESTED_FREQUENCY:
481479 if (INTEL_GEN(i915) < 6)
482480 return -ENODEV;
@@ -538,10 +536,8 @@ static int i915_pmu_event_init(struct perf_event *event) · 55 unmodified lines
538536 if (ret)
539537 return ret;
540538
541− if (!event->parent) {
542− __module_get(THIS_MODULE);
539+ if (!event->parent)
543540 event->destroy = i915_pmu_event_destroy;
544− }
545541
546542 return 0;
547543 }
@@ -1130,6 +1126,7 @@ void i915_pmu_register(struct drm_i915_private *i915) · 582 unmodified lines
11301126 if (!pmu->base.attr_groups)
11311127 goto err_attr;
11321128
1129+ pmu->base.module = THIS_MODULE;
11331130 pmu->base.task_ctx_nr = perf_invalid_context;
11341131 pmu->base.event_init = i915_pmu_event_init;
11351132 pmu->base.add = i915_pmu_event_add;
drivers/gpu/drm/i915/selftests/i915_buddy.c+10−8
@@ -8,8 +8,6 @@ · 7 unmodified lines
88 #include "../i915_selftest.h"
99 #include "i915_random.h"
1010
11−#define SZ_8G (1ULL << 33)
12−
1311 static void __igt_dump_block(struct i915_buddy_mm *mm,
1412 struct i915_buddy_block *block,
1513 bool buddy)
@@ -281,18 +279,22 @@ static int igt_check_mm(struct i915_buddy_mm *mm) · 265 unmodified lines
281279 static void igt_mm_config(u64 *size, u64 *chunk_size)
282280 {
283281 I915_RND_STATE(prng);
284− u64 s, ms;
282+ u32 s, ms;
285283
286284 /* Nothing fancy, just try to get an interesting bit pattern */
287285
288286 prandom_seed_state(&prng, i915_selftest.random_seed);
289287
290− s = i915_prandom_u64_state(&prng) & (SZ_8G - 1);
291− ms = BIT_ULL(12 + (prandom_u32_state(&prng) % ilog2(s >> 12)));
292− s = max(s & -ms, ms);
288+ /* Let size be a random number of pages up to 8 GB (2M pages) */
289+ s = 1 + i915_prandom_u32_max_state((BIT(33 - 12)) - 1, &prng);
290+ /* Let the chunk size be a random power of 2 less than size */
291+ ms = BIT(i915_prandom_u32_max_state(ilog2(s), &prng));
292+ /* Round size down to the chunk size */
293+ s &= -ms;
293294
294− *chunk_size = ms;
295− *size = s;
295+ /* Convert from pages to bytes */
296+ *chunk_size = (u64)ms << 12;
297+ *size = (u64)s << 12;
296298 }
297299
298300 static int igt_buddy_alloc_smoke(void *arg)
drivers/gpu/drm/i915/selftests/mock_gem_device.c+3−0
@@ -78,6 +78,7 @@ static void mock_device_release(struct drm_device *dev) · 77 unmodified lines
7878 drm_mode_config_cleanup(&i915->drm);
7979
8080 out:
81+ i915_params_free(&i915->params);
8182 put_device(&i915->drm.pdev->dev);
8283 i915->drm.pdev = NULL;
8384 }
@@ -165,6 +166,8 @@ struct drm_i915_private *mock_gem_device(void) · 81 unmodified lines
165166 i915->drm.pdev = pdev;
166167 drmm_add_final_kfree(&i915->drm, i915);
167168
169+ i915_params_copy(&i915->params, &i915_modparams);
170+
168171 intel_runtime_pm_init_early(&i915->runtime_pm);
169172
170173 /* Using the global GTT may ask questions about KMS users, so prepare */
drivers/gpu/drm/imx/ipuv3-plane.c+1−1
@@ -447,7 +447,7 @@ static int ipu_plane_atomic_check(struct drm_plane *plane, · 446 unmodified lines
447447 if (fb->pitches[1] != fb->pitches[2])
448448 return -EINVAL;
449449
450− /* fall-through */
450+ fallthrough;
451451 case DRM_FORMAT_NV12:
452452 case DRM_FORMAT_NV16:
453453 ubo = drm_plane_state_to_ubo(state);
drivers/gpu/drm/meson/meson_osd_afbcd.c+1−1
@@ -205,7 +205,7 @@ static int meson_g12a_afbcd_pixel_fmt(u64 modifier, uint32_t format) · 204 unmodified lines
205205 /* YTR is forbidden for non XBGR formats */
206206 if (modifier & AFBC_FORMAT_MOD_YTR)
207207 return -EINVAL;
208− /* fall through */
208+ fallthrough;
209209 case DRM_FORMAT_XBGR8888:
210210 case DRM_FORMAT_ABGR8888:
211211 return MAFBC_FMT_RGBA8888;
drivers/gpu/drm/meson/meson_overlay.c+2−2
@@ -654,7 +654,7 @@ static void meson_overlay_atomic_update(struct drm_plane *plane, · 653 unmodified lines
654654 priv->viu.vd1_addr2,
655655 priv->viu.vd1_stride2,
656656 priv->viu.vd1_height2);
657− /* fallthrough */
657+ fallthrough;
658658 case 2:
659659 gem = drm_fb_cma_get_gem_obj(fb, 1);
660660 priv->viu.vd1_addr1 = gem->paddr + fb->offsets[1];
@@ -666,7 +666,7 @@ static void meson_overlay_atomic_update(struct drm_plane *plane, · 5 unmodified lines
666666 priv->viu.vd1_addr1,
667667 priv->viu.vd1_stride1,
668668 priv->viu.vd1_height1);
669− /* fallthrough */
669+ fallthrough;
670670 case 1:
671671 gem = drm_fb_cma_get_gem_obj(fb, 0);
672672 priv->viu.vd1_addr0 = gem->paddr + fb->offsets[0];
drivers/gpu/drm/msm/adreno/a5xx_gpu.c+2−2
@@ -59,7 +59,7 @@ static void a5xx_submit_in_rb(struct msm_gpu *gpu, struct msm_gem_submit *submit · 58 unmodified lines
5959 case MSM_SUBMIT_CMD_CTX_RESTORE_BUF:
6060 if (priv->lastctx == ctx)
6161 break;
62− /* fall-thru */
62+ fallthrough;
6363 case MSM_SUBMIT_CMD_BUF:
6464 /* copy commands into RB: */
6565 obj = submit->bos[submit->cmd[i].idx].obj;
@@ -150,7 +150,7 @@ static void a5xx_submit(struct msm_gpu *gpu, struct msm_gem_submit *submit, · 84 unmodified lines
150150 case MSM_SUBMIT_CMD_CTX_RESTORE_BUF:
151151 if (priv->lastctx == ctx)
152152 break;
153− /* fall-thru */
153+ fallthrough;
154154 case MSM_SUBMIT_CMD_BUF:
155155 OUT_PKT7(ring, CP_INDIRECT_BUFFER_PFE, 3);
156156 OUT_RING(ring, lower_32_bits(submit->cmd[i].iova));
drivers/gpu/drm/msm/adreno/a6xx_gmu.c+30−10
@@ -133,7 +133,7 @@ void a6xx_gmu_set_freq(struct msm_gpu *gpu, struct dev_pm_opp *opp) · 132 unmodified lines
133133
134134 if (!gmu->legacy) {
135135 a6xx_hfi_set_freq(gmu, perf_index);
136− icc_set_bw(gpu->icc_path, 0, MBps_to_icc(7216));
136+ dev_pm_opp_set_bw(&gpu->pdev->dev, opp);
137137 pm_runtime_put(gmu->dev);
138138 return;
139139 }
@@ -157,11 +157,7 @@ void a6xx_gmu_set_freq(struct msm_gpu *gpu, struct dev_pm_opp *opp) · 17 unmodified lines
157157 if (ret)
158158 dev_err(gmu->dev, "GMU set GPU frequency error: %d\n", ret);
159159
160− /*
161− * Eventually we will want to scale the path vote with the frequency but
162− * for now leave it at max so that the performance is nominal.
163− */
164− icc_set_bw(gpu->icc_path, 0, MBps_to_icc(7216));
160+ dev_pm_opp_set_bw(&gpu->pdev->dev, opp);
165161 pm_runtime_put(gmu->dev);
166162 }
167163
@@ -204,6 +200,16 @@ static int a6xx_gmu_start(struct a6xx_gmu *gmu) · 36 unmodified lines
204200 {
205201 int ret;
206202 u32 val;
203+ u32 mask, reset_val;
204+
205+ val = gmu_read(gmu, REG_A6XX_GMU_CM3_DTCM_START + 0xff8);
206+ if (val <= 0x20010004) {
207+ mask = 0xffffffff;
208+ reset_val = 0xbabeface;
209+ } else {
210+ mask = 0x1ff;
211+ reset_val = 0x100;
212+ }
207213
208214 gmu_write(gmu, REG_A6XX_GMU_CM3_SYSRESET, 1);
209215
@@ -215,7 +221,7 @@ static int a6xx_gmu_start(struct a6xx_gmu *gmu) · 5 unmodified lines
215221 gmu_write(gmu, REG_A6XX_GMU_CM3_SYSRESET, 0);
216222
217223 ret = gmu_poll_timeout(gmu, REG_A6XX_GMU_CM3_FW_INIT_RESULT, val,
218− val == 0xbabeface, 100, 10000);
224+ (val & mask) == reset_val, 100, 10000);
219225
220226 if (ret)
221227 DRM_DEV_ERROR(gmu->dev, "GMU firmware initialization timed out\n");
@@ -602,7 +608,7 @@ static void a6xx_gmu_power_config(struct a6xx_gmu *gmu) · 380 unmodified lines
602608 gmu_rmw(gmu, REG_A6XX_GMU_PWR_COL_INTER_FRAME_CTRL, 0,
603609 A6XX_GMU_PWR_COL_INTER_FRAME_CTRL_IFPC_ENABLE |
604610 A6XX_GMU_PWR_COL_INTER_FRAME_CTRL_HM_POWER_COLLAPSE_ENABLE);
605− /* Fall through */
611+ fallthrough;
606612 case GMU_IDLE_STATE_SPTP:
607613 gmu_write(gmu, REG_A6XX_GMU_PWR_COL_SPTPRAC_HYST,
608614 GMU_PWR_COL_HYST);
@@ -845,10 +851,24 @@ static void a6xx_gmu_set_initial_freq(struct msm_gpu *gpu, struct a6xx_gmu *gmu) · 236 unmodified lines
845851 if (IS_ERR_OR_NULL(gpu_opp))
846852 return;
847853
854+ gmu->freq = 0; /* so a6xx_gmu_set_freq() doesn't exit early */
848855 a6xx_gmu_set_freq(gpu, gpu_opp);
849856 dev_pm_opp_put(gpu_opp);
850857 }
851858
859+static void a6xx_gmu_set_initial_bw(struct msm_gpu *gpu, struct a6xx_gmu *gmu)
860+{
861+ struct dev_pm_opp *gpu_opp;
862+ unsigned long gpu_freq = gmu->gpu_freqs[gmu->current_perf_index];
863+
864+ gpu_opp = dev_pm_opp_find_freq_exact(&gpu->pdev->dev, gpu_freq, true);
865+ if (IS_ERR_OR_NULL(gpu_opp))
866+ return;
867+
868+ dev_pm_opp_set_bw(&gpu->pdev->dev, gpu_opp);
869+ dev_pm_opp_put(gpu_opp);
870+}
871+
852872 int a6xx_gmu_resume(struct a6xx_gpu *a6xx_gpu)
853873 {
854874 struct adreno_gpu *adreno_gpu = &a6xx_gpu->base;
@@ -882,7 +902,7 @@ int a6xx_gmu_resume(struct a6xx_gpu *a6xx_gpu) · 27 unmodified lines
882902 }
883903
884904 /* Set the bus quota to a reasonable value for boot */
885− icc_set_bw(gpu->icc_path, 0, MBps_to_icc(3072));
905+ a6xx_gmu_set_initial_bw(gpu, gmu);
886906
887907 /* Enable the GMU interrupt */
888908 gmu_write(gmu, REG_A6XX_GMU_AO_HOST_INTERRUPT_CLR, ~0);
@@ -1051,7 +1071,7 @@ int a6xx_gmu_stop(struct a6xx_gpu *a6xx_gpu) · 162 unmodified lines
10511071 a6xx_gmu_shutdown(gmu);
10521072
10531073 /* Remove the bus vote */
1054− icc_set_bw(gpu->icc_path, 0, 0);
1074+ dev_pm_opp_set_bw(&gpu->pdev->dev, NULL);
10551075
10561076 /*
10571077 * Make sure the GX domain is off before turning off the GMU (CX)
drivers/gpu/drm/msm/adreno/a6xx_gpu.c+1−1
@@ -117,7 +117,7 @@ static void a6xx_submit(struct msm_gpu *gpu, struct msm_gem_submit *submit, · 116 unmodified lines
117117 case MSM_SUBMIT_CMD_CTX_RESTORE_BUF:
118118 if (priv->lastctx == ctx)
119119 break;
120− /* fall-thru */
120+ fallthrough;
121121 case MSM_SUBMIT_CMD_BUF:
122122 OUT_PKT7(ring, CP_INDIRECT_BUFFER_PFE, 3);
123123 OUT_RING(ring, lower_32_bits(submit->cmd[i].iova));
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c+2−1
@@ -938,7 +938,8 @@ struct msm_gpu_state *a6xx_gpu_state_get(struct msm_gpu *gpu) · 937 unmodified lines
938938 msm_gem_kernel_put(dumper.bo, gpu->aspace, true);
939939 }
940940
941− a6xx_get_debugbus(gpu, a6xx_state);
941+ if (snapshot_debugbus)
942+ a6xx_get_debugbus(gpu, a6xx_state);
942943
943944 return &a6xx_state->base;
944945 }
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h+1−1
@@ -372,7 +372,7 @@ static const struct a6xx_indexed_registers { · 371 unmodified lines
372372 u32 data;
373373 u32 count;
374374 } a6xx_indexed_reglist[] = {
375− { "CP_SEQ_STAT", REG_A6XX_CP_SQE_STAT_ADDR,
375+ { "CP_SQE_STAT", REG_A6XX_CP_SQE_STAT_ADDR,
376376 REG_A6XX_CP_SQE_STAT_DATA, 0x33 },
377377 { "CP_DRAW_STATE", REG_A6XX_CP_DRAW_STATE_ADDR,
378378 REG_A6XX_CP_DRAW_STATE_DATA, 0x100 },
drivers/gpu/drm/msm/adreno/adreno_device.c+4−0
@@ -14,6 +14,10 @@ bool hang_debug = false; · 13 unmodified lines
1414 MODULE_PARM_DESC(hang_debug, "Dump registers when hang is detected (can be slow!)");
1515 module_param_named(hang_debug, hang_debug, bool, 0600);
1616
17+bool snapshot_debugbus = false;
18+MODULE_PARM_DESC(snapshot_debugbus, "Include debugbus sections in GPU devcoredump (if not fused off)");
19+module_param_named(snapshot_debugbus, snapshot_debugbus, bool, 0600);
20+
1721 static const struct adreno_info gpulist[] = {
1822 {
1923 .rev = ADRENO_REV(2, 0, 0, 0),
drivers/gpu/drm/msm/adreno/adreno_gpu.c+2−2
@@ -396,7 +396,7 @@ int adreno_hw_init(struct msm_gpu *gpu) · 395 unmodified lines
396396 ring->next = ring->start;
397397
398398 /* reset completed fence seqno: */
399− ring->memptrs->fence = ring->seqno;
399+ ring->memptrs->fence = ring->fctx->completed_fence;
400400 ring->memptrs->rptr = 0;
401401 }
402402
@@ -474,7 +474,7 @@ void adreno_submit(struct msm_gpu *gpu, struct msm_gem_submit *submit, · 71 unmodified lines
474474 /* ignore if there has not been a ctx switch: */
475475 if (priv->lastctx == ctx)
476476 break;
477− /* fall-thru */
477+ fallthrough;
478478 case MSM_SUBMIT_CMD_BUF:
479479 OUT_PKT3(ring, adreno_is_a4xx(adreno_gpu) ?
480480 CP_INDIRECT_BUFFER_PFE : CP_INDIRECT_BUFFER_PFD, 2);
drivers/gpu/drm/msm/adreno/adreno_gpu.h+2−0
@@ -21,6 +21,8 @@ · 20 unmodified lines
2121 #define REG_SKIP ~0
2222 #define REG_ADRENO_SKIP(_offset) [_offset] = REG_SKIP
2323
24+extern bool snapshot_debugbus;
25+
2426 /**
2527 * adreno_regs: List of registers that are used in across all
2628 * 3D devices. Each device type has different offset value for the same
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c+1−1
@@ -827,7 +827,7 @@ static void dpu_crtc_enable(struct drm_crtc *crtc, · 826 unmodified lines
827827 {
828828 struct dpu_crtc *dpu_crtc;
829829 struct drm_encoder *encoder;
830− bool request_bandwidth;
830+ bool request_bandwidth = false;
831831
832832 if (!crtc) {
833833 DPU_ERROR("invalid crtc\n");
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c+11−9
@@ -599,7 +599,10 @@ static int dpu_encoder_virt_atomic_check( · 598 unmodified lines
599599 dpu_kms = to_dpu_kms(priv->kms);
600600 mode = &crtc_state->mode;
601601 adj_mode = &crtc_state->adjusted_mode;
602− global_state = dpu_kms_get_existing_global_state(dpu_kms);
602+ global_state = dpu_kms_get_global_state(crtc_state->state);
603+ if (IS_ERR(global_state))
604+ return PTR_ERR(global_state);
605+
603606 trace_dpu_enc_atomic_check(DRMID(drm_enc));
604607
605608 /* perform atomic check on the first physical encoder (master) */
@@ -625,12 +628,15 @@ static int dpu_encoder_virt_atomic_check( · 19 unmodified lines
625628 /* Reserve dynamic resources now. */
626629 if (!ret) {
627630 /*
628− * Avoid reserving resources when mode set is pending. Topology
629− * info may not be available to complete reservation.
631+ * Release and Allocate resources on every modeset
632+ * Dont allocate when active is false.
630633 */
631634 if (drm_atomic_crtc_needs_modeset(crtc_state)) {
632− ret = dpu_rm_reserve(&dpu_kms->rm, global_state,
633− drm_enc, crtc_state, topology);
635+ dpu_rm_release(global_state, drm_enc);
636+
637+ if (!crtc_state->active_changed || crtc_state->active)
638+ ret = dpu_rm_reserve(&dpu_kms->rm, global_state,
639+ drm_enc, crtc_state, topology);
634640 }
635641 }
636642
@@ -1181,7 +1187,6 @@ static void dpu_encoder_virt_disable(struct drm_encoder *drm_enc) · 544 unmodified lines
11811187 struct dpu_encoder_virt *dpu_enc = NULL;
11821188 struct msm_drm_private *priv;
11831189 struct dpu_kms *dpu_kms;
1184− struct dpu_global_state *global_state;
11851190 int i = 0;
11861191
11871192 if (!drm_enc) {
@@ -1200,7 +1205,6 @@ static void dpu_encoder_virt_disable(struct drm_encoder *drm_enc) · 12 unmodified lines
12001205
12011206 priv = drm_enc->dev->dev_private;
12021207 dpu_kms = to_dpu_kms(priv->kms);
1203− global_state = dpu_kms_get_existing_global_state(dpu_kms);
12041208
12051209 trace_dpu_enc_disable(DRMID(drm_enc));
12061210
@@ -1230,8 +1234,6 @@ static void dpu_encoder_virt_disable(struct drm_encoder *drm_enc) · 23 unmodified lines
12301234
12311235 DPU_DEBUG_ENC(dpu_enc, "encoder disabled\n");
12321236
1233− dpu_rm_release(global_state, drm_enc);
1234−
12351237 mutex_unlock(&dpu_enc->enc_lock);
12361238 }
12371239
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c+2−2
@@ -866,9 +866,9 @@ static int dpu_plane_atomic_check(struct drm_plane *plane, · 865 unmodified lines
866866 crtc_state = drm_atomic_get_new_crtc_state(state->state,
867867 state->crtc);
868868
869− min_scale = FRAC_16_16(1, pdpu->pipe_sblk->maxdwnscale);
869+ min_scale = FRAC_16_16(1, pdpu->pipe_sblk->maxupscale);
870870 ret = drm_atomic_helper_check_plane_state(state, crtc_state, min_scale,
871− pdpu->pipe_sblk->maxupscale << 16,
871+ pdpu->pipe_sblk->maxdwnscale << 16,
872872 true, true);
873873 if (ret) {
874874 DPU_DEBUG_PLANE(pdpu, "Check plane state failed (%d)\n", ret);
drivers/gpu/drm/msm/msm_atomic.c+36−0
@@ -27,6 +27,34 @@ int msm_atomic_prepare_fb(struct drm_plane *plane, · 26 unmodified lines
2727 return msm_framebuffer_prepare(new_state->fb, kms->aspace);
2828 }
2929
30+/*
31+ * Helpers to control vblanks while we flush.. basically just to ensure
32+ * that vblank accounting is switched on, so we get valid seqn/timestamp
33+ * on pageflip events (if requested)
34+ */
35+
36+static void vblank_get(struct msm_kms *kms, unsigned crtc_mask)
37+{
38+ struct drm_crtc *crtc;
39+
40+ for_each_crtc_mask(kms->dev, crtc, crtc_mask) {
41+ if (!crtc->state->active)
42+ continue;
43+ drm_crtc_vblank_get(crtc);
44+ }
45+}
46+
47+static void vblank_put(struct msm_kms *kms, unsigned crtc_mask)
48+{
49+ struct drm_crtc *crtc;
50+
51+ for_each_crtc_mask(kms->dev, crtc, crtc_mask) {
52+ if (!crtc->state->active)
53+ continue;
54+ drm_crtc_vblank_put(crtc);
55+ }
56+}
57+
3058 static void msm_atomic_async_commit(struct msm_kms *kms, int crtc_idx)
3159 {
3260 unsigned crtc_mask = BIT(crtc_idx);
@@ -44,6 +72,8 @@ static void msm_atomic_async_commit(struct msm_kms *kms, int crtc_idx) · 11 unmodified lines
4472
4573 kms->funcs->enable_commit(kms);
4674
75+ vblank_get(kms, crtc_mask);
76+
4777 /*
4878 * Flush hardware updates:
4979 */
@@ -58,6 +88,8 @@ static void msm_atomic_async_commit(struct msm_kms *kms, int crtc_idx) · 8 unmodified lines
5888 kms->funcs->wait_flush(kms, crtc_mask);
5989 trace_msm_atomic_wait_flush_finish(crtc_mask);
6090
91+ vblank_put(kms, crtc_mask);
92+
6193 mutex_lock(&kms->commit_lock);
6294 kms->funcs->complete_commit(kms, crtc_mask);
6395 mutex_unlock(&kms->commit_lock);
@@ -221,6 +253,8 @@ void msm_atomic_commit_tail(struct drm_atomic_state *state) · 157 unmodified lines
221253 */
222254 kms->pending_crtc_mask &= ~crtc_mask;
223255
256+ vblank_get(kms, crtc_mask);
257+
224258 /*
225259 * Flush hardware updates:
226260 */
@@ -235,6 +269,8 @@ void msm_atomic_commit_tail(struct drm_atomic_state *state) · 8 unmodified lines
235269 kms->funcs->wait_flush(kms, crtc_mask);
236270 trace_msm_atomic_wait_flush_finish(crtc_mask);
237271
272+ vblank_put(kms, crtc_mask);
273+
238274 mutex_lock(&kms->commit_lock);
239275 kms->funcs->complete_commit(kms, crtc_mask);
240276 mutex_unlock(&kms->commit_lock);
drivers/gpu/drm/msm/msm_drv.c+8−0
@@ -1320,6 +1320,13 @@ static int msm_pdev_remove(struct platform_device *pdev) · 1319 unmodified lines
13201320 return 0;
13211321 }
13221322
1323+static void msm_pdev_shutdown(struct platform_device *pdev)
1324+{
1325+ struct drm_device *drm = platform_get_drvdata(pdev);
1326+
1327+ drm_atomic_helper_shutdown(drm);
1328+}
1329+
13231330 static const struct of_device_id dt_match[] = {
13241331 { .compatible = "qcom,mdp4", .data = (void *)KMS_MDP4 },
13251332 { .compatible = "qcom,mdss", .data = (void *)KMS_MDP5 },
@@ -1332,6 +1339,7 @@ MODULE_DEVICE_TABLE(of, dt_match); · 6 unmodified lines
13321339 static struct platform_driver msm_platform_driver = {
13331340 .probe = msm_pdev_probe,
13341341 .remove = msm_pdev_remove,
1342+ .shutdown = msm_pdev_shutdown,
13351343 .driver = {
13361344 .name = "msm",
13371345 .of_match_table = dt_match,
drivers/gpu/drm/msm/msm_ringbuffer.c+2−1
@@ -27,7 +27,8 @@ struct msm_ringbuffer *msm_ringbuffer_new(struct msm_gpu *gpu, int id, · 26 unmodified lines
2727 ring->id = id;
2828
2929 ring->start = msm_gem_kernel_new(gpu->dev, MSM_GPU_RINGBUFFER_SZ,
30− MSM_BO_WC, gpu->aspace, &ring->bo, &ring->iova);
30+ MSM_BO_WC | MSM_BO_GPU_READONLY, gpu->aspace, &ring->bo,
31+ &ring->iova);
3132
3233 if (IS_ERR(ring->start)) {
3334 ret = PTR_ERR(ring->start);
drivers/gpu/drm/nouveau/dispnv50/core507d.c+4−1
@@ -50,7 +50,10 @@ core507d_update(struct nv50_core *core, u32 *interlock, bool ntfy) · 49 unmodified lines
5050 interlock[NV50_DISP_INTERLOCK_OVLY] |
5151 NVDEF(NV507D, UPDATE, NOT_DRIVER_FRIENDLY, FALSE) |
5252 NVDEF(NV507D, UPDATE, NOT_DRIVER_UNFRIENDLY, FALSE) |
53− NVDEF(NV507D, UPDATE, INHIBIT_INTERRUPTS, FALSE));
53+ NVDEF(NV507D, UPDATE, INHIBIT_INTERRUPTS, FALSE),
54+
55+ SET_NOTIFIER_CONTROL,
56+ NVDEF(NV507D, SET_NOTIFIER_CONTROL, NOTIFY, DISABLE));
5457
5558 return PUSH_KICK(push);
5659 }
drivers/gpu/drm/nouveau/dispnv50/crcc37d.c+1−1
@@ -6,7 +6,7 @@ · 5 unmodified lines
66 #include "disp.h"
77 #include "head.h"
88
9−#include <nvif/push507c.h>
9+#include <nvif/pushc37b.h>
1010
1111 #include <nvhw/class/clc37d.h>
1212
drivers/gpu/drm/nouveau/dispnv50/disp.c+6−0
@@ -257,6 +257,12 @@ nv50_dmac_create(struct nvif_device *device, struct nvif_object *disp, · 256 unmodified lines
257257 dmac->push->end = dmac->push->bgn;
258258 dmac->max = 0x1000/4 - 1;
259259
260+ /* EVO channels are affected by a HW bug where the last 12 DWORDs
261+ * of the push buffer aren't able to be used safely.
262+ */
263+ if (disp->oclass < GV100_DISP)
264+ dmac->max -= 12;
265+
260266 args->pushbuf = nvif_handle(&dmac->_push.mem.object);
261267
262268 ret = nv50_chan_create(device, disp, oclass, head, data, size,
drivers/gpu/drm/nouveau/include/nvif/push507c.h+1−1
@@ -20,6 +20,6 @@ · 19 unmodified lines
2020 PUSH_ASSERT(!((o) & ~DRF_SMASK(NV507C_DMA_JUMP_OFFSET)), "offset"); \
2121 PUSH_DATA__((p), NVDEF(NV507C, DMA, OPCODE, JUMP) | \
2222 NVVAL(NV507C, DMA, JUMP_OFFSET, (o) >> 2), \
23− "jump 0x%08x - %s", (u32)(o), __func__); \
23+ " jump 0x%08x - %s", (u32)(o), __func__); \
2424 } while(0)
2525 #endif
drivers/gpu/drm/omapdrm/dss/venc.c+1−1
@@ -597,7 +597,7 @@ static void venc_bridge_mode_set(struct drm_bridge *bridge, · 596 unmodified lines
597597 switch (venc_mode) {
598598 default:
599599 WARN_ON_ONCE(1);
600− /* Fall-through */
600+ fallthrough;
601601 case VENC_MODE_PAL:
602602 venc->config = &venc_config_pal_trm;
603603 break;
drivers/gpu/drm/omapdrm/omap_crtc.c+2−1
@@ -451,11 +451,12 @@ static void omap_crtc_atomic_enable(struct drm_crtc *crtc, · 450 unmodified lines
451451 if (omap_state->manually_updated)
452452 return;
453453
454− spin_lock_irq(&crtc->dev->event_lock);
455454 drm_crtc_vblank_on(crtc);
455+
456456 ret = drm_crtc_vblank_get(crtc);
457457 WARN_ON(ret != 0);
458458
459+ spin_lock_irq(&crtc->dev->event_lock);
459460 omap_crtc_arm_event(crtc);
460461 spin_unlock_irq(&crtc->dev->event_lock);
461462 }
drivers/gpu/drm/radeon/ci_dpm.c+1−1
@@ -4856,7 +4856,7 @@ static void ci_request_link_speed_change_before_state_change(struct radeon_devic · 4855 unmodified lines
48564856 pi->force_pcie_gen = RADEON_PCIE_GEN2;
48574857 if (current_link_speed == RADEON_PCIE_GEN2)
48584858 break;
4859− /* fall through */
4859+ fallthrough;
48604860 case RADEON_PCIE_GEN2:
48614861 if (radeon_acpi_pcie_performance_request(rdev, PCIE_PERF_REQ_PECI_GEN2, false) == 0)
48624862 break;
drivers/gpu/drm/radeon/r300.c+2−2
@@ -820,7 +820,7 @@ static int r300_packet0_check(struct radeon_cs_parser *p, · 819 unmodified lines
820820 ((idx_value >> 21) & 0xF));
821821 return -EINVAL;
822822 }
823− /* Fall through. */
823+ fallthrough;
824824 case 6:
825825 track->cb[i].cpp = 4;
826826 break;
@@ -971,7 +971,7 @@ static int r300_packet0_check(struct radeon_cs_parser *p, · 144 unmodified lines
971971 return -EINVAL;
972972 }
973973 /* The same rules apply as for DXT3/5. */
974− /* Fall through. */
974+ fallthrough;
975975 case R300_TX_FORMAT_DXT3:
976976 case R300_TX_FORMAT_DXT5:
977977 track->textures[i].cpp = 1;
drivers/gpu/drm/radeon/r420.c+1−1
@@ -115,7 +115,7 @@ void r420_pipes_init(struct radeon_device *rdev) · 114 unmodified lines
115115 default:
116116 /* force to 1 pipe */
117117 num_pipes = 1;
118− /* fall through */
118+ fallthrough;
119119 case 1:
120120 tmp = (0 << 1);
121121 break;
drivers/gpu/drm/radeon/r600_cs.c+2−2
@@ -487,7 +487,7 @@ static int r600_cs_track_validate_cb(struct radeon_cs_parser *p, int i) · 486 unmodified lines
487487 return -EINVAL;
488488 }
489489 }
490− /* fall through */
490+ fallthrough;
491491 case V_0280A0_CLEAR_ENABLE:
492492 {
493493 uint32_t block_max = G_028100_CMASK_BLOCK_MAX(track->cb_color_mask[i]);
@@ -1535,7 +1535,7 @@ static int r600_check_texture_resource(struct radeon_cs_parser *p, u32 idx, · 1041 unmodified lines
15351535 break;
15361536 case V_038000_SQ_TEX_DIM_2D_ARRAY_MSAA:
15371537 is_array = true;
1538− /* fall through */
1538+ fallthrough;
15391539 case V_038000_SQ_TEX_DIM_2D_MSAA:
15401540 array_check.nsamples = 1 << llevel;
15411541 llevel = 0;
drivers/gpu/drm/radeon/radeon_display.c+1−1
@@ -933,7 +933,7 @@ static void avivo_get_fb_ref_div(unsigned nom, unsigned den, unsigned post_div, · 932 unmodified lines
933933
934934 /* get matching reference and feedback divider */
935935 *ref_div = min(max(den/post_div, 1u), ref_div_max);
936− *fb_div = DIV_ROUND_CLOSEST(nom * *ref_div * post_div, den);
936+ *fb_div = max(nom * *ref_div * post_div / den, 1u);
937937
938938 /* limit fb divider to its maximum */
939939 if (*fb_div > fb_div_max) {
drivers/gpu/drm/radeon/radeon_uvd.c+1−1
@@ -454,7 +454,7 @@ static int radeon_uvd_validate_codec(struct radeon_cs_parser *p, · 453 unmodified lines
454454 if (p->rdev->family >= CHIP_PALM)
455455 return 0;
456456
457− /* fall through */
457+ fallthrough;
458458 default:
459459 DRM_ERROR("UVD codec not supported by hardware %d!\n",
460460 stream_type);
drivers/gpu/drm/radeon/si_dpm.c+1−1
@@ -5744,7 +5744,7 @@ static void si_request_link_speed_change_before_state_change(struct radeon_devic · 5743 unmodified lines
57445744 si_pi->force_pcie_gen = RADEON_PCIE_GEN2;
57455745 if (current_link_speed == RADEON_PCIE_GEN2)
57465746 break;
5747− /* fall through */
5747+ fallthrough;
57485748 case RADEON_PCIE_GEN2:
57495749 if (radeon_acpi_pcie_performance_request(rdev, PCIE_PERF_REQ_PECI_GEN2, false) == 0)
57505750 break;
drivers/gpu/drm/radeon/uvd_v1_0.c+1−1
@@ -219,7 +219,7 @@ done: · 218 unmodified lines
219219 WREG32(RS_DQ_RD_RET_CONF, 0x3f);
220220 WREG32(MC_CONFIG, 0x1f);
221221
222− /* fall through */
222+ fallthrough;
223223 case CHIP_RV670:
224224 case CHIP_RV635:
225225
drivers/gpu/drm/savage/savage_state.c+5−5
@@ -306,7 +306,7 @@ static int savage_dispatch_dma_prim(drm_savage_private_t * dev_priv, · 305 unmodified lines
306306 case SAVAGE_PRIM_TRILIST_201:
307307 reorder = 1;
308308 prim = SAVAGE_PRIM_TRILIST;
309− /* fall through */
309+ fallthrough;
310310 case SAVAGE_PRIM_TRILIST:
311311 if (n % 3 != 0) {
312312 DRM_ERROR("wrong number of vertices %u in TRILIST\n",
@@ -444,7 +444,7 @@ static int savage_dispatch_vb_prim(drm_savage_private_t * dev_priv, · 131 unmodified lines
444444 case SAVAGE_PRIM_TRILIST_201:
445445 reorder = 1;
446446 prim = SAVAGE_PRIM_TRILIST;
447− /* fall through */
447+ fallthrough;
448448 case SAVAGE_PRIM_TRILIST:
449449 if (n % 3 != 0) {
450450 DRM_ERROR("wrong number of vertices %u in TRILIST\n",
@@ -566,7 +566,7 @@ static int savage_dispatch_dma_idx(drm_savage_private_t * dev_priv, · 115 unmodified lines
566566 case SAVAGE_PRIM_TRILIST_201:
567567 reorder = 1;
568568 prim = SAVAGE_PRIM_TRILIST;
569− /* fall through */
569+ fallthrough;
570570 case SAVAGE_PRIM_TRILIST:
571571 if (n % 3 != 0) {
572572 DRM_ERROR("wrong number of indices %u in TRILIST\n", n);
@@ -705,7 +705,7 @@ static int savage_dispatch_vb_idx(drm_savage_private_t * dev_priv, · 132 unmodified lines
705705 case SAVAGE_PRIM_TRILIST_201:
706706 reorder = 1;
707707 prim = SAVAGE_PRIM_TRILIST;
708− /* fall through */
708+ fallthrough;
709709 case SAVAGE_PRIM_TRILIST:
710710 if (n % 3 != 0) {
711711 DRM_ERROR("wrong number of indices %u in TRILIST\n", n);
@@ -1066,7 +1066,7 @@ int savage_bci_cmdbuf(struct drm_device *dev, void *data, struct drm_file *file_ · 354 unmodified lines
10661066 ret = -EINVAL;
10671067 goto done;
10681068 }
1069− /* fall through */
1069+ fallthrough;
10701070 case SAVAGE_CMD_DMA_PRIM:
10711071 case SAVAGE_CMD_VB_PRIM:
10721072 if (!first_draw_cmd)
drivers/gpu/drm/sti/sti_hdmi.c+3−3
@@ -850,13 +850,13 @@ static int hdmi_audio_configure(struct sti_hdmi *hdmi) · 849 unmodified lines
850850 switch (info->channels) {
851851 case 8:
852852 audio_cfg |= HDMI_AUD_CFG_CH78_VALID;
853− /* fall through */
853+ fallthrough;
854854 case 6:
855855 audio_cfg |= HDMI_AUD_CFG_CH56_VALID;
856− /* fall through */
856+ fallthrough;
857857 case 4:
858858 audio_cfg |= HDMI_AUD_CFG_CH34_VALID | HDMI_AUD_CFG_8CH;
859− /* fall through */
859+ fallthrough;
860860 case 2:
861861 audio_cfg |= HDMI_AUD_CFG_CH12_VALID;
862862 break;
drivers/gpu/drm/sun4i/sun4i_tcon.c+2−2
@@ -195,7 +195,7 @@ void sun4i_tcon_set_status(struct sun4i_tcon *tcon, · 194 unmodified lines
195195 switch (encoder->encoder_type) {
196196 case DRM_MODE_ENCODER_LVDS:
197197 is_lvds = true;
198− /* Fallthrough */
198+ fallthrough;
199199 case DRM_MODE_ENCODER_DSI:
200200 case DRM_MODE_ENCODER_NONE:
201201 channel = 0;
@@ -342,7 +342,7 @@ static void sun4i_tcon0_mode_set_dithering(struct sun4i_tcon *tcon, · 140 unmodified lines
342342 /* R and B components are only 5 bits deep */
343343 val |= SUN4I_TCON0_FRM_CTL_MODE_R;
344344 val |= SUN4I_TCON0_FRM_CTL_MODE_B;
345− /* Fall through */
345+ fallthrough;
346346 case MEDIA_BUS_FMT_RGB666_1X18:
347347 case MEDIA_BUS_FMT_RGB666_1X7X3_SPWG:
348348 /* Fall through: enable dithering */
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c+1−1
@@ -1027,7 +1027,7 @@ static ssize_t sun6i_dsi_transfer(struct mipi_dsi_host *host, · 1026 unmodified lines
10271027 ret = sun6i_dsi_dcs_read(dsi, msg);
10281028 break;
10291029 }
1030− /* Else, fall through */
1030+ fallthrough;
10311031
10321032 default:
10331033 ret = -EINVAL;
drivers/gpu/drm/tegra/dc.c+1−1
@@ -135,7 +135,7 @@ static inline u32 compute_dda_inc(unsigned int in, unsigned int out, bool v, · 134 unmodified lines
135135
136136 default:
137137 WARN_ON_ONCE(1);
138− /* fallthrough */
138+ fallthrough;
139139 case 4:
140140 max = 4;
141141 break;
drivers/gpu/drm/tilcdc/tilcdc_crtc.c+1−1
@@ -386,7 +386,7 @@ static void tilcdc_crtc_set_mode(struct drm_crtc *crtc) · 385 unmodified lines
386386 case DRM_FORMAT_XBGR8888:
387387 case DRM_FORMAT_XRGB8888:
388388 reg |= LCDC_V2_TFT_24BPP_UNPACK;
389− /* fallthrough */
389+ fallthrough;
390390 case DRM_FORMAT_BGR888:
391391 case DRM_FORMAT_RGB888:
392392 reg |= LCDC_V2_TFT_24BPP_MODE;
drivers/gpu/drm/ttm/ttm_bo_vm.c+1−1
@@ -525,7 +525,7 @@ int ttm_bo_vm_access(struct vm_area_struct *vma, unsigned long addr, · 524 unmodified lines
525525 if (unlikely(ret != 0))
526526 return ret;
527527 }
528− /* fall through */
528+ fallthrough;
529529 case TTM_PL_TT:
530530 ret = ttm_bo_vm_access_kmap(bo, offset, buf, len, write);
531531 break;
drivers/gpu/drm/via/via_dmablit.c+4−4
@@ -179,21 +179,21 @@ via_free_sg_info(struct pci_dev *pdev, drm_via_sg_info_t *vsg) · 178 unmodified lines
179179 switch (vsg->state) {
180180 case dr_via_device_mapped:
181181 via_unmap_blit_from_device(pdev, vsg);
182− /* fall through */
182+ fallthrough;
183183 case dr_via_desc_pages_alloc:
184184 for (i = 0; i < vsg->num_desc_pages; ++i) {
185185 if (vsg->desc_pages[i] != NULL)
186186 free_page((unsigned long)vsg->desc_pages[i]);
187187 }
188188 kfree(vsg->desc_pages);
189− /* fall through */
189+ fallthrough;
190190 case dr_via_pages_locked:
191191 unpin_user_pages_dirty_lock(vsg->pages, vsg->num_pages,
192192 (vsg->direction == DMA_FROM_DEVICE));
193− /* fall through */
193+ fallthrough;
194194 case dr_via_pages_alloc:
195195 vfree(vsg->pages);
196− /* fall through */
196+ fallthrough;
197197 default:
198198 vsg->state = dr_via_sg_init;
199199 }
drivers/gpu/drm/virtio/virtgpu_ioctl.c+1−0
@@ -179,6 +179,7 @@ static int virtio_gpu_execbuffer_ioctl(struct drm_device *dev, void *data, · 178 unmodified lines
179179
180180 virtio_gpu_cmd_submit(vgdev, buf, exbuf->size,
181181 vfpriv->ctx_id, buflist, out_fence);
182+ dma_fence_put(&out_fence->f);
182183 virtio_gpu_notify(vgdev);
183184 return 0;
184185
drivers/gpu/drm/virtio/virtgpu_object.c+1−0
@@ -79,6 +79,7 @@ void virtio_gpu_cleanup_object(struct virtio_gpu_object *bo) · 78 unmodified lines
7979 }
8080
8181 sg_free_table(shmem->pages);
82+ kfree(shmem->pages);
8283 shmem->pages = NULL;
8384 drm_gem_shmem_unpin(&bo->base.base);
8485 }
drivers/gpu/drm/xen/xen_drm_front.c+0−3
@@ -649,9 +649,7 @@ static void displback_changed(struct xenbus_device *xb_dev, · 648 unmodified lines
649649
650650 switch (backend_state) {
651651 case XenbusStateReconfiguring:
652− /* fall through */
653652 case XenbusStateReconfigured:
654− /* fall through */
655653 case XenbusStateInitialised:
656654 break;
657655
@@ -701,7 +699,6 @@ static void displback_changed(struct xenbus_device *xb_dev, · 43 unmodified lines
701699 break;
702700
703701 case XenbusStateUnknown:
704− /* fall through */
705702 case XenbusStateClosed:
706703 if (xb_dev->state == XenbusStateClosed)
707704 break;
drivers/gpu/drm/xen/xen_drm_front_gem.c+5−4
@@ -18,6 +18,7 @@ · 17 unmodified lines
1818 #include <drm/drm_probe_helper.h>
1919
2020 #include <xen/balloon.h>
21+#include <xen/xen.h>
2122
2223 #include "xen_drm_front.h"
2324 #include "xen_drm_front_gem.h"
@@ -99,8 +100,8 @@ static struct xen_gem_object *gem_create(struct drm_device *dev, size_t size) · 75 unmodified lines
99100 * allocate ballooned pages which will be used to map
100101 * grant references provided by the backend
101102 */
102− ret = alloc_xenballooned_pages(xen_obj->num_pages,
103− xen_obj->pages);
103+ ret = xen_alloc_unpopulated_pages(xen_obj->num_pages,
104+ xen_obj->pages);
104105 if (ret < 0) {
105106 DRM_ERROR("Cannot allocate %zu ballooned pages: %d\n",
106107 xen_obj->num_pages, ret);
@@ -152,8 +153,8 @@ void xen_drm_front_gem_free_object_unlocked(struct drm_gem_object *gem_obj) · 45 unmodified lines
152153 } else {
153154 if (xen_obj->pages) {
154155 if (xen_obj->be_alloc) {
155− free_xenballooned_pages(xen_obj->num_pages,
156− xen_obj->pages);
156+ xen_free_unpopulated_pages(xen_obj->num_pages,
157+ xen_obj->pages);
157158 gem_free_pages_array(xen_obj);
158159 } else {
159160 drm_gem_put_pages(&xen_obj->base,
drivers/gpu/ipu-v3/ipu-dc.c+1−1
@@ -141,7 +141,7 @@ static int ipu_bus_format_to_map(u32 fmt) · 140 unmodified lines
141141 switch (fmt) {
142142 default:
143143 WARN_ON(1);
144− /* fall-through */
144+ fallthrough;
145145 case MEDIA_BUS_FMT_RGB888_1X24:
146146 return IPU_DC_MAP_RGB24;
147147 case MEDIA_BUS_FMT_RGB565_1X16:
drivers/hid/hid-core.c+13−2
@@ -1597,6 +1597,17 @@ static void hid_output_field(const struct hid_device *hid, · 1596 unmodified lines
15971597 }
15981598 }
15991599
1600+/*
1601+ * Compute the size of a report.
1602+ */
1603+static size_t hid_compute_report_size(struct hid_report *report)
1604+{
1605+ if (report->size)
1606+ return ((report->size - 1) >> 3) + 1;
1607+
1608+ return 0;
1609+}
1610+
16001611 /*
16011612 * Create a report. 'data' has to be allocated using
16021613 * hid_alloc_report_buf() so that it has proper size.
@@ -1609,7 +1620,7 @@ void hid_output_report(struct hid_report *report, __u8 *data) · 6 unmodified lines
16091620 if (report->id > 0)
16101621 *data++ = report->id;
16111622
1612− memset(data, 0, ((report->size - 1) >> 3) + 1);
1623+ memset(data, 0, hid_compute_report_size(report));
16131624 for (n = 0; n < report->maxfield; n++)
16141625 hid_output_field(report->device, report->field[n], data);
16151626 }
@@ -1739,7 +1750,7 @@ int hid_report_raw_event(struct hid_device *hid, int type, u8 *data, u32 size, · 123 unmodified lines
17391750 csize--;
17401751 }
17411752
1742− rsize = ((report->size - 1) >> 3) + 1;
1753+ rsize = hid_compute_report_size(report);
17431754
17441755 if (report_enum->numbered && rsize >= HID_MAX_BUFFER_SIZE)
17451756 rsize = HID_MAX_BUFFER_SIZE - 1;
drivers/hid/hid-cougar.c+1−1
@@ -321,7 +321,7 @@ static const struct kernel_param_ops cougar_g6_is_space_ops = { · 320 unmodified lines
321321 };
322322 module_param_cb(g6_is_space, &cougar_g6_is_space_ops, &g6_is_space, 0644);
323323
324−static struct hid_device_id cougar_id_table[] = {
324+static const struct hid_device_id cougar_id_table[] = {
325325 { HID_USB_DEVICE(USB_VENDOR_ID_SOLID_YEAR,
326326 USB_DEVICE_ID_COUGAR_500K_GAMING_KEYBOARD) },
327327 { HID_USB_DEVICE(USB_VENDOR_ID_SOLID_YEAR,
drivers/hid/hid-elan.c+2−0
@@ -188,6 +188,7 @@ static int elan_input_configured(struct hid_device *hdev, struct hid_input *hi) · 187 unmodified lines
188188 ret = input_mt_init_slots(input, ELAN_MAX_FINGERS, INPUT_MT_POINTER);
189189 if (ret) {
190190 hid_err(hdev, "Failed to init elan MT slots: %d\n", ret);
191+ input_free_device(input);
191192 return ret;
192193 }
193194
@@ -198,6 +199,7 @@ static int elan_input_configured(struct hid_device *hdev, struct hid_input *hi) · 4 unmodified lines
198199 if (ret) {
199200 hid_err(hdev, "Failed to register elan input device: %d\n",
200201 ret);
202+ input_mt_destroy_slots(input);
201203 input_free_device(input);
202204 return ret;
203205 }
drivers/hid/hid-ids.h+6−0
@@ -728,6 +728,9 @@ · 727 unmodified lines
728728 #define USB_DEVICE_ID_LENOVO_TPPRODOCK 0x6067
729729 #define USB_DEVICE_ID_LENOVO_X1_COVER 0x6085
730730 #define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_608D 0x608d
731+#define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6019 0x6019
732+#define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_602E 0x602e
733+#define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6093 0x6093
731734
732735 #define USB_VENDOR_ID_LG 0x1fd2
733736 #define USB_DEVICE_ID_LG_MULTITOUCH 0x0064
@@ -847,6 +850,7 @@ · 113 unmodified lines
847850 #define USB_DEVICE_ID_MS_POWER_COVER 0x07da
848851 #define USB_DEVICE_ID_MS_XBOX_ONE_S_CONTROLLER 0x02fd
849852 #define USB_DEVICE_ID_MS_PIXART_MOUSE 0x00cb
853+#define USB_DEVICE_ID_8BITDO_SN30_PRO_PLUS 0x02e0
850854
851855 #define USB_VENDOR_ID_MOJO 0x8282
852856 #define USB_DEVICE_ID_RETRO_ADAPTER 0x3201
@@ -1012,6 +1016,8 @@ · 159 unmodified lines
10121016 #define USB_DEVICE_ID_SAITEK_RAT9 0x0cfa
10131017 #define USB_DEVICE_ID_SAITEK_MMO7 0x0cd0
10141018 #define USB_DEVICE_ID_SAITEK_X52 0x075c
1019+#define USB_DEVICE_ID_SAITEK_X52_2 0x0255
1020+#define USB_DEVICE_ID_SAITEK_X52_PRO 0x0762
10151021
10161022 #define USB_VENDOR_ID_SAMSUNG 0x0419
10171023 #define USB_DEVICE_ID_SAMSUNG_IR_REMOTE 0x0001
drivers/hid/hid-input.c+4−0
@@ -1132,6 +1132,10 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel · 1131 unmodified lines
11321132 }
11331133
11341134 mapped:
1135+ /* Mapping failed, bail out */
1136+ if (!bit)
1137+ return;
1138+
11351139 if (device->driver->input_mapped &&
11361140 device->driver->input_mapped(device, hidinput, field, usage,
11371141 &bit, &max) < 0) {
drivers/hid/hid-lg-g15.c+1−1
@@ -680,7 +680,7 @@ static int lg_g15_register_led(struct lg_g15_data *g15, int i) · 679 unmodified lines
680680 * but it does have a separate power-on (reset) value.
681681 */
682682 g15->leds[i].cdev.name = "g15::power_on_backlight_val";
683− /* fall through */
683+ fallthrough;
684684 case LG_G15_KBD_BRIGHTNESS:
685685 g15->leds[i].cdev.brightness_set_blocking =
686686 lg_g510_kbd_led_set;
drivers/hid/hid-logitech-dj.c+1−1
@@ -844,7 +844,7 @@ static void logi_dj_recv_queue_notification(struct dj_receiver_dev *djrcv_dev, · 843 unmodified lines
844844 workitem.type = WORKITEM_TYPE_EMPTY;
845845 break;
846846 }
847− /* fall-through */
847+ fallthrough;
848848 case REPORT_TYPE_NOTIF_DEVICE_UNPAIRED:
849849 workitem.quad_id_msb =
850850 dj_report->report_params[DEVICE_PAIRED_PARAM_EQUAD_ID_MSB];
drivers/hid/hid-macally.c+1−1
@@ -29,7 +29,7 @@ static __u8 *macally_report_fixup(struct hid_device *hdev, __u8 *rdesc, · 28 unmodified lines
2929 return rdesc;
3030 }
3131
32−static struct hid_device_id macally_id_table[] = {
32+static const struct hid_device_id macally_id_table[] = {
3333 { HID_USB_DEVICE(USB_VENDOR_ID_SOLID_YEAR,
3434 USB_DEVICE_ID_MACALLY_IKEY_KEYBOARD) },
3535 { }
drivers/hid/hid-microsoft.c+2−3
@@ -163,16 +163,13 @@ static int ms_surface_dial_quirk(struct hid_input *hi, struct hid_field *field, · 162 unmodified lines
163163 {
164164 switch (usage->hid & HID_USAGE_PAGE) {
165165 case 0xff070000:
166− /* fall-through */
167166 case HID_UP_DIGITIZER:
168167 /* ignore those axis */
169168 return -1;
170169 case HID_UP_GENDESK:
171170 switch (usage->hid) {
172171 case HID_GD_X:
173− /* fall-through */
174172 case HID_GD_Y:
175− /* fall-through */
176173 case HID_GD_RFKILL_BTN:
177174 /* ignore those axis */
178175 return -1;
@@ -451,6 +448,8 @@ static const struct hid_device_id ms_devices[] = { · 272 unmodified lines
451448 .driver_data = MS_SURFACE_DIAL },
452449 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_XBOX_ONE_S_CONTROLLER),
453450 .driver_data = MS_QUIRK_FF },
451+ { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_8BITDO_SN30_PRO_PLUS),
452+ .driver_data = MS_QUIRK_FF },
454453 { }
455454 };
456455 MODULE_DEVICE_TABLE(hid, ms_devices);
drivers/hid/hid-multitouch.c+2−0
@@ -856,6 +856,8 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi, · 855 unmodified lines
856856 code = BTN_0 + ((usage->hid - 1) & HID_USAGE);
857857
858858 hid_map_usage(hi, usage, bit, max, EV_KEY, code);
859+ if (!*bit)
860+ return -1;
859861 input_set_capability(hi->input, EV_KEY, code);
860862 return 1;
861863
drivers/hid/hid-quirks.c+5−0
@@ -105,6 +105,9 @@ static const struct hid_device_id hid_quirks[] = { · 104 unmodified lines
105105 { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_EASYPEN_M406XE), HID_QUIRK_MULTI_INPUT },
106106 { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_PIXART_USB_OPTICAL_MOUSE_ID2), HID_QUIRK_ALWAYS_POLL },
107107 { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_608D), HID_QUIRK_ALWAYS_POLL },
108+ { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6019), HID_QUIRK_ALWAYS_POLL },
109+ { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_602E), HID_QUIRK_ALWAYS_POLL },
110+ { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6093), HID_QUIRK_ALWAYS_POLL },
108111 { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_C007), HID_QUIRK_ALWAYS_POLL },
109112 { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_C077), HID_QUIRK_ALWAYS_POLL },
110113 { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_KEYBOARD_G710_PLUS), HID_QUIRK_NOGET },
@@ -147,6 +150,8 @@ static const struct hid_device_id hid_quirks[] = { · 36 unmodified lines
147150 { HID_USB_DEVICE(USB_VENDOR_ID_RETROUSB, USB_DEVICE_ID_RETROUSB_SNES_RETROPORT), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
148151 { HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_RUMBLEPAD), HID_QUIRK_BADPAD },
149152 { HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_X52), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
153+ { HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_X52_2), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
154+ { HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_X52_PRO), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
150155 { HID_USB_DEVICE(USB_VENDOR_ID_SEMICO, USB_DEVICE_ID_SEMICO_USB_KEYKOARD2), HID_QUIRK_NO_INIT_REPORTS },
151156 { HID_USB_DEVICE(USB_VENDOR_ID_SEMICO, USB_DEVICE_ID_SEMICO_USB_KEYKOARD), HID_QUIRK_NO_INIT_REPORTS },
152157 { HID_USB_DEVICE(USB_VENDOR_ID_SENNHEISER, USB_DEVICE_ID_SENNHEISER_BTD500USB), HID_QUIRK_NOGET },
drivers/hid/hid-rmi.c+0−1
@@ -428,7 +428,6 @@ static void rmi_report(struct hid_device *hid, struct hid_report *report) · 427 unmodified lines
428428
429429 switch (report->id) {
430430 case RMI_READ_DATA_REPORT_ID:
431− /* fall-through */
432431 case RMI_ATTN_REPORT_ID:
433432 return;
434433 }
drivers/hid/hid-roccat-kone.c+1−1
@@ -780,7 +780,7 @@ static void kone_keep_values_up_to_date(struct kone_device *kone, · 779 unmodified lines
780780 case kone_mouse_event_switch_profile:
781781 kone->actual_dpi = kone->profiles[event->value - 1].
782782 startup_dpi;
783− /* fall through */
783+ fallthrough;
784784 case kone_mouse_event_osd_profile:
785785 kone->actual_profile = event->value;
786786 break;
drivers/hid/hid-uclogic-params.c+1−1
@@ -974,7 +974,7 @@ int uclogic_params_init(struct uclogic_params *params, · 973 unmodified lines
974974 }
975975 break;
976976 }
977− /* FALL THROUGH */
977+ fallthrough;
978978 case VID_PID(USB_VENDOR_ID_HUION,
979979 USB_DEVICE_ID_HUION_TABLET):
980980 case VID_PID(USB_VENDOR_ID_HUION,
drivers/hid/hid-wiimote-core.c+0−2
@@ -1672,7 +1672,6 @@ static ssize_t wiimote_ext_show(struct device *dev, · 1671 unmodified lines
16721672 case WIIMOTE_EXT_GUITAR:
16731673 return sprintf(buf, "guitar\n");
16741674 case WIIMOTE_EXT_UNKNOWN:
1675− /* fallthrough */
16761675 default:
16771676 return sprintf(buf, "unknown\n");
16781677 }
@@ -1722,7 +1721,6 @@ static ssize_t wiimote_dev_show(struct device *dev, · 43 unmodified lines
17221721 case WIIMOTE_DEV_PENDING:
17231722 return sprintf(buf, "pending\n");
17241723 case WIIMOTE_DEV_UNKNOWN:
1725− /* fallthrough */
17261724 default:
17271725 return sprintf(buf, "unknown\n");
17281726 }
drivers/hid/i2c-hid/i2c-hid-core.c+13−9
@@ -420,6 +420,19 @@ static int i2c_hid_set_power(struct i2c_client *client, int power_state) · 419 unmodified lines
420420 dev_err(&client->dev, "failed to change power setting.\n");
421421
422422 set_pwr_exit:
423+
424+ /*
425+ * The HID over I2C specification states that if a DEVICE needs time
426+ * after the PWR_ON request, it should utilise CLOCK stretching.
427+ * However, it has been observered that the Windows driver provides a
428+ * 1ms sleep between the PWR_ON and RESET requests.
429+ * According to Goodix Windows even waits 60 ms after (other?)
430+ * PWR_ON requests. Testing has confirmed that several devices
431+ * will not work properly without a delay after a PWR_ON request.
432+ */
433+ if (!ret && power_state == I2C_HID_PWR_ON)
434+ msleep(60);
435+
423436 return ret;
424437 }
425438
@@ -441,15 +454,6 @@ static int i2c_hid_hwreset(struct i2c_client *client) · 15 unmodified lines
441454 if (ret)
442455 goto out_unlock;
443456
444− /*
445− * The HID over I2C specification states that if a DEVICE needs time
446− * after the PWR_ON request, it should utilise CLOCK stretching.
447− * However, it has been observered that the Windows driver provides a
448− * 1ms sleep between the PWR_ON and RESET requests and that some devices
449− * rely on this.
450− */
451− usleep_range(1000, 5000);
452−
453457 i2c_hid_dbg(ihid, "resetting...\n");
454458
455459 ret = i2c_hid_command(client, &hid_reset_cmd, NULL, 0);
drivers/hid/usbhid/hid-core.c+24−29
@@ -26,7 +26,6 @@ · 25 unmodified lines
2626 #include <linux/wait.h>
2727 #include <linux/workqueue.h>
2828 #include <linux/string.h>
29−#include <linux/timekeeping.h>
3029
3130 #include <linux/usb.h>
3231
@@ -96,18 +95,6 @@ static int hid_start_in(struct hid_device *hid) · 63 unmodified lines
9695 set_bit(HID_NO_BANDWIDTH, &usbhid->iofl);
9796 } else {
9897 clear_bit(HID_NO_BANDWIDTH, &usbhid->iofl);
99−
100− if (test_bit(HID_RESUME_RUNNING, &usbhid->iofl)) {
101− /*
102− * In case events are generated while nobody was
103− * listening, some are released when the device
104− * is re-opened. Wait 50 msec for the queue to
105− * empty before allowing events to go through
106− * hid.
107− */
108− usbhid->input_start_time =
109− ktime_add_ms(ktime_get_coarse(), 50);
110− }
11198 }
11299 }
113100 spin_unlock_irqrestore(&usbhid->lock, flags);
@@ -293,23 +280,20 @@ static void hid_irq_in(struct urb *urb) · 179 unmodified lines
293280 if (!test_bit(HID_OPENED, &usbhid->iofl))
294281 break;
295282 usbhid_mark_busy(usbhid);
296− if (test_bit(HID_RESUME_RUNNING, &usbhid->iofl)) {
297− if (ktime_before(ktime_get_coarse(),
298− usbhid->input_start_time))
299− break;
300− clear_bit(HID_RESUME_RUNNING, &usbhid->iofl);
283+ if (!test_bit(HID_RESUME_RUNNING, &usbhid->iofl)) {
284+ hid_input_report(urb->context, HID_INPUT_REPORT,
285+ urb->transfer_buffer,
286+ urb->actual_length, 1);
287+ /*
288+ * autosuspend refused while keys are pressed
289+ * because most keyboards don't wake up when
290+ * a key is released
291+ */
292+ if (hid_check_keys_pressed(hid))
293+ set_bit(HID_KEYS_PRESSED, &usbhid->iofl);
294+ else
295+ clear_bit(HID_KEYS_PRESSED, &usbhid->iofl);
301296 }
302− hid_input_report(urb->context, HID_INPUT_REPORT,
303− urb->transfer_buffer, urb->actual_length, 1);
304− /*
305− * autosuspend refused while keys are pressed
306− * because most keyboards don't wake up when
307− * a key is released
308− */
309− if (hid_check_keys_pressed(hid))
310− set_bit(HID_KEYS_PRESSED, &usbhid->iofl);
311− else
312− clear_bit(HID_KEYS_PRESSED, &usbhid->iofl);
313297 break;
314298 case -EPIPE: /* stall */
315299 usbhid_mark_busy(usbhid);
@@ -736,6 +720,17 @@ static int usbhid_open(struct hid_device *hid) · 420 unmodified lines
736720
737721 usb_autopm_put_interface(usbhid->intf);
738722
723+ /*
724+ * In case events are generated while nobody was listening,
725+ * some are released when the device is re-opened.
726+ * Wait 50 msec for the queue to empty before allowing events
727+ * to go through hid.
728+ */
729+ if (res == 0)
730+ msleep(50);
731+
732+ clear_bit(HID_RESUME_RUNNING, &usbhid->iofl);
733+
739734 Done:
740735 mutex_unlock(&usbhid->mutex);
741736 return res;
drivers/hid/usbhid/hiddev.c+4−1
@@ -519,12 +519,16 @@ static noinline int hiddev_ioctl_usage(struct hiddev *hiddev, unsigned int cmd, · 518 unmodified lines
519519
520520 switch (cmd) {
521521 case HIDIOCGUSAGE:
522+ if (uref->usage_index >= field->report_count)
523+ goto inval;
522524 uref->value = field->value[uref->usage_index];
523525 if (copy_to_user(user_arg, uref, sizeof(*uref)))
524526 goto fault;
525527 goto goodreturn;
526528
527529 case HIDIOCSUSAGE:
530+ if (uref->usage_index >= field->report_count)
531+ goto inval;
528532 field->value[uref->usage_index] = uref->value;
529533 goto goodreturn;
530534
@@ -781,7 +785,6 @@ static long hiddev_ioctl(struct file *file, unsigned int cmd, unsigned long arg) · 250 unmodified lines
781785 break;
782786
783787 case HIDIOCGUCODE:
784− /* fall through */
785788 case HIDIOCGUSAGE:
786789 case HIDIOCSUSAGE:
787790 case HIDIOCGUSAGES:
drivers/hid/usbhid/usbhid.h+0−2
@@ -13,7 +13,6 @@ · 12 unmodified lines
1313
1414 #include <linux/types.h>
1515 #include <linux/slab.h>
16−#include <linux/ktime.h>
1716 #include <linux/list.h>
1817 #include <linux/mutex.h>
1918 #include <linux/timer.h>
@@ -84,7 +83,6 @@ struct usbhid_device { · 64 unmodified lines
8483 struct mutex mutex; /* start/stop/open/close */
8584 spinlock_t lock; /* fifo spinlock */
8685 unsigned long iofl; /* I/O flags (CTRL_RUNNING, OUT_RUNNING) */
87− ktime_t input_start_time; /* When to start handling input */
8886 struct timer_list io_retry; /* Retry timer */
8987 unsigned long stop_retry; /* Time to give up, in jiffies */
9088 unsigned int retry_delay; /* Delay length in ms */
drivers/hid/wacom_wac.c+16−16
@@ -341,7 +341,7 @@ static int wacom_graphire_irq(struct wacom_wac *wacom) · 340 unmodified lines
341341
342342 case 2: /* Mouse with wheel */
343343 input_report_key(input, BTN_MIDDLE, data[1] & 0x04);
344− /* fall through */
344+ fallthrough;
345345
346346 case 3: /* Mouse without wheel */
347347 wacom->tool[0] = BTN_TOOL_MOUSE;
@@ -1201,7 +1201,7 @@ static int wacom_intuos_bt_irq(struct wacom_wac *wacom, size_t len) · 853 unmodified lines
12011201 case 0x04:
12021202 wacom_intuos_bt_process_data(wacom, data + i);
12031203 i += 10;
1204− /* fall through */
1204+ fallthrough;
12051205 case 0x03:
12061206 wacom_intuos_bt_process_data(wacom, data + i);
12071207 i += 10;
@@ -2148,7 +2148,7 @@ static void wacom_wac_pad_event(struct hid_device *hdev, struct hid_field *field · 940 unmodified lines
21482148 for (i = 0; i < wacom->led.count; i++)
21492149 wacom_update_led(wacom, features->numbered_buttons,
21502150 value, i);
2151− /* fall through*/
2151+ fallthrough;
21522152 default:
21532153 do_report = true;
21542154 break;
@@ -3602,14 +3602,14 @@ int wacom_setup_pen_input_capabilities(struct input_dev *input_dev, · 1447 unmodified lines
36023602 switch (features->type) {
36033603 case GRAPHIRE_BT:
36043604 __clear_bit(ABS_MISC, input_dev->absbit);
3605− /* fall through */
3605+ fallthrough;
36063606
36073607 case WACOM_MO:
36083608 case WACOM_G4:
36093609 input_set_abs_params(input_dev, ABS_DISTANCE, 0,
36103610 features->distance_max,
36113611 features->distance_fuzz, 0);
3612− /* fall through */
3612+ fallthrough;
36133613
36143614 case GRAPHIRE:
36153615 input_set_capability(input_dev, EV_REL, REL_WHEEL);
@@ -3649,7 +3649,7 @@ int wacom_setup_pen_input_capabilities(struct input_dev *input_dev, · 33 unmodified lines
36493649 case INTUOS4S:
36503650 input_set_abs_params(input_dev, ABS_Z, -900, 899, 0, 0);
36513651 input_abs_set_res(input_dev, ABS_Z, 287);
3652− /* fall through */
3652+ fallthrough;
36533653
36543654 case INTUOS:
36553655 wacom_setup_intuos(wacom_wac);
@@ -3682,7 +3682,7 @@ int wacom_setup_pen_input_capabilities(struct input_dev *input_dev, · 26 unmodified lines
36823682 case TABLETPC:
36833683 case TABLETPCE:
36843684 __clear_bit(ABS_MISC, input_dev->absbit);
3685− /* fall through */
3685+ fallthrough;
36863686
36873687 case DTUS:
36883688 case DTUSX:
@@ -3696,7 +3696,7 @@ int wacom_setup_pen_input_capabilities(struct input_dev *input_dev, · 7 unmodified lines
36963696
36973697 case PTU:
36983698 __set_bit(BTN_STYLUS2, input_dev->keybit);
3699− /* fall through */
3699+ fallthrough;
37003700
37013701 case PENPARTNER:
37023702 __set_bit(BTN_TOOL_PEN, input_dev->keybit);
@@ -3799,7 +3799,7 @@ int wacom_setup_touch_input_capabilities(struct input_dev *input_dev, · 96 unmodified lines
37993799 input_abs_set_res(input_dev, ABS_MT_POSITION_X, 40);
38003800 input_abs_set_res(input_dev, ABS_MT_POSITION_Y, 40);
38013801
3802− /* fall through */
3802+ fallthrough;
38033803
38043804 case INTUOS5:
38053805 case INTUOS5L:
@@ -3817,7 +3817,7 @@ int wacom_setup_touch_input_capabilities(struct input_dev *input_dev, · 11 unmodified lines
38173817 input_set_abs_params(input_dev, ABS_MT_WIDTH_MAJOR, 0, features->x_max, 0, 0);
38183818 input_set_abs_params(input_dev, ABS_MT_WIDTH_MINOR, 0, features->y_max, 0, 0);
38193819 input_set_abs_params(input_dev, ABS_MT_ORIENTATION, 0, 1, 0, 0);
3820− /* fall through */
3820+ fallthrough;
38213821
38223822 case WACOM_27QHDT:
38233823 if (wacom_wac->shared->touch->product == 0x32C ||
@@ -3826,14 +3826,14 @@ int wacom_setup_touch_input_capabilities(struct input_dev *input_dev, · 2 unmodified lines
38263826 __set_bit(SW_MUTE_DEVICE, input_dev->swbit);
38273827 wacom_wac->shared->has_mute_touch_switch = true;
38283828 }
3829− /* fall through */
3829+ fallthrough;
38303830
38313831 case MTSCREEN:
38323832 case MTTPC:
38333833 case MTTPC_B:
38343834 case TABLETPC2FG:
38353835 input_mt_init_slots(input_dev, features->touch_max, INPUT_MT_DIRECT);
3836− /*fall through */
3836+ fallthrough;
38373837
38383838 case TABLETPC:
38393839 case TABLETPCE:
@@ -3843,7 +3843,7 @@ int wacom_setup_touch_input_capabilities(struct input_dev *input_dev, · 3 unmodified lines
38433843 case INTUOSHT2:
38443844 input_dev->evbit[0] |= BIT_MASK(EV_SW);
38453845 __set_bit(SW_MUTE_DEVICE, input_dev->swbit);
3846− /* fall through */
3846+ fallthrough;
38473847
38483848 case BAMBOO_PT:
38493849 case BAMBOO_TOUCH:
@@ -4099,7 +4099,7 @@ int wacom_setup_pad_input_capabilities(struct input_dev *input_dev, · 249 unmodified lines
40994099
41004100 __set_bit(KEY_BUTTONCONFIG, input_dev->keybit);
41014101 __set_bit(KEY_INFO, input_dev->keybit);
4102− /* fall through */
4102+ fallthrough;
41034103
41044104 case WACOM_21UX2:
41054105 case WACOM_BEE:
@@ -4115,7 +4115,7 @@ int wacom_setup_pad_input_capabilities(struct input_dev *input_dev, · 9 unmodified lines
41154115 case INTUOS3:
41164116 case INTUOS3L:
41174117 input_set_abs_params(input_dev, ABS_RY, 0, 4096, 0, 0);
4118− /* fall through */
4118+ fallthrough;
41194119
41204120 case INTUOS3S:
41214121 input_set_abs_params(input_dev, ABS_RX, 0, 4096, 0, 0);
@@ -4139,7 +4139,7 @@ int wacom_setup_pad_input_capabilities(struct input_dev *input_dev, · 17 unmodified lines
41394139 * ID_INPUT_TABLET to be set.
41404140 */
41414141 __set_bit(BTN_STYLUS, input_dev->keybit);
4142− /* fall through */
4142+ fallthrough;
41434143
41444144 case INTUOS4:
41454145 case INTUOS4L:
drivers/hsi/clients/ssi_protocol.c+3−3
@@ -291,7 +291,7 @@ static void ssip_set_rxstate(struct ssi_protocol *ssi, unsigned int state) · 290 unmodified lines
291291 /* CMT speech workaround */
292292 if (atomic_read(&ssi->tx_usecnt))
293293 break;
294− /* Else, fall through */
294+ fallthrough;
295295 case RECEIVING:
296296 mod_timer(&ssi->keep_alive, jiffies +
297297 msecs_to_jiffies(SSIP_KATOUT));
@@ -466,7 +466,7 @@ static void ssip_keep_alive(struct timer_list *t) · 168 unmodified lines
466466 case SEND_READY:
467467 if (atomic_read(&ssi->tx_usecnt) == 0)
468468 break;
469− /* Fall through */
469+ fallthrough;
470470 /*
471471 * Workaround for cmt-speech in that case
472472 * we relay on audio timers.
@@ -668,7 +668,7 @@ static void ssip_rx_bootinforeq(struct hsi_client *cl, u32 cmd) · 195 unmodified lines
668668 case ACTIVE:
669669 dev_err(&cl->device, "Boot info req on active state\n");
670670 ssip_error(cl);
671− /* Fall through */
671+ fallthrough;
672672 case INIT:
673673 case HANDSHAKE:
674674 spin_lock_bh(&ssi->lock);
drivers/hsi/controllers/omap_ssi_core.c+1−1
@@ -296,7 +296,7 @@ static int ssi_clk_event(struct notifier_block *nb, unsigned long event, · 295 unmodified lines
296296 break;
297297 case ABORT_RATE_CHANGE:
298298 dev_dbg(&ssi->device, "abort rate change\n");
299− /* Fall through */
299+ fallthrough;
300300 case POST_RATE_CHANGE:
301301 dev_dbg(&ssi->device, "post rate change (%lu -> %lu)\n",
302302 clk_data->old_rate, clk_data->new_rate);
drivers/hv/hv_kvp.c+1−1
@@ -354,7 +354,7 @@ static void process_ib_ipinfo(void *in_msg, void *out_msg, int op) · 353 unmodified lines
354354
355355 out->body.kvp_ip_val.dhcp_enabled = in->kvp_ip_val.dhcp_enabled;
356356
357− /* fallthrough */
357+ fallthrough;
358358
359359 case KVP_OP_GET_IP_INFO:
360360 utf16s_to_utf8s((wchar_t *)in->kvp_ip_val.adapter_id,
drivers/hv/hv_util.c+51−14
@@ -282,26 +282,52 @@ static struct { · 281 unmodified lines
282282 spinlock_t lock;
283283 } host_ts;
284284
285−static struct timespec64 hv_get_adj_host_time(void)
285+static inline u64 reftime_to_ns(u64 reftime)
286286 {
287− struct timespec64 ts;
288− u64 newtime, reftime;
287+ return (reftime - WLTIMEDELTA) * 100;
288+}
289+
290+/*
291+ * Hard coded threshold for host timesync delay: 600 seconds
292+ */
293+static const u64 HOST_TIMESYNC_DELAY_THRESH = 600 * (u64)NSEC_PER_SEC;
294+
295+static int hv_get_adj_host_time(struct timespec64 *ts)
296+{
297+ u64 newtime, reftime, timediff_adj;
289298 unsigned long flags;
299+ int ret = 0;
290300
291301 spin_lock_irqsave(&host_ts.lock, flags);
292302 reftime = hv_read_reference_counter();
293− newtime = host_ts.host_time + (reftime - host_ts.ref_time);
294− ts = ns_to_timespec64((newtime - WLTIMEDELTA) * 100);
303+
304+ /*
305+ * We need to let the caller know that last update from host
306+ * is older than the max allowable threshold. clock_gettime()
307+ * and PTP ioctl do not have a documented error that we could
308+ * return for this specific case. Use ESTALE to report this.
309+ */
310+ timediff_adj = reftime - host_ts.ref_time;
311+ if (timediff_adj * 100 > HOST_TIMESYNC_DELAY_THRESH) {
312+ pr_warn_once("TIMESYNC IC: Stale time stamp, %llu nsecs old\n",
313+ (timediff_adj * 100));
314+ ret = -ESTALE;
315+ }
316+
317+ newtime = host_ts.host_time + timediff_adj;
318+ *ts = ns_to_timespec64(reftime_to_ns(newtime));
295319 spin_unlock_irqrestore(&host_ts.lock, flags);
296320
297− return ts;
321+ return ret;
298322 }
299323
300324 static void hv_set_host_time(struct work_struct *work)
301325 {
302− struct timespec64 ts = hv_get_adj_host_time();
303326
304− do_settimeofday64(&ts);
327+ struct timespec64 ts;
328+
329+ if (!hv_get_adj_host_time(&ts))
330+ do_settimeofday64(&ts);
305331 }
306332
307333 /*
@@ -361,10 +387,23 @@ static void timesync_onchannelcallback(void *context) · 53 unmodified lines
361387 struct ictimesync_ref_data *refdata;
362388 u8 *time_txf_buf = util_timesynch.recv_buffer;
363389
364− vmbus_recvpacket(channel, time_txf_buf,
365− HV_HYP_PAGE_SIZE, &recvlen, &requestid);
390+ /*
391+ * Drain the ring buffer and use the last packet to update
392+ * host_ts
393+ */
394+ while (1) {
395+ int ret = vmbus_recvpacket(channel, time_txf_buf,
396+ HV_HYP_PAGE_SIZE, &recvlen,
397+ &requestid);
398+ if (ret) {
399+ pr_warn_once("TimeSync IC pkt recv failed (Err: %d)\n",
400+ ret);
401+ break;
402+ }
403+
404+ if (!recvlen)
405+ break;
366406
367− if (recvlen > 0) {
368407 icmsghdrp = (struct icmsg_hdr *)&time_txf_buf[
369408 sizeof(struct vmbuspipe_hdr)];
370409
@@ -622,9 +661,7 @@ static int hv_ptp_adjtime(struct ptp_clock_info *ptp, s64 delta) · 251 unmodified lines
622661
623662 static int hv_ptp_gettime(struct ptp_clock_info *info, struct timespec64 *ts)
624663 {
625− *ts = hv_get_adj_host_time();
626−
627− return 0;
664+ return hv_get_adj_host_time(ts);
628665 }
629666
630667 static struct ptp_clock_info ptp_hyperv_info = {
drivers/hwmon/adt7462.c+4−4
@@ -435,7 +435,7 @@ static const char *voltage_label(struct adt7462_data *data, int which) · 434 unmodified lines
435435 case 3:
436436 return "+1.5V";
437437 }
438− /* fall through */
438+ fallthrough;
439439 case 2:
440440 if (!(data->pin_cfg[1] & ADT7462_PIN22_INPUT))
441441 return "+12V3";
@@ -493,7 +493,7 @@ static const char *voltage_label(struct adt7462_data *data, int which) · 51 unmodified lines
493493 case 3:
494494 return "+1.5";
495495 }
496− /* fall through */
496+ fallthrough;
497497 case 11:
498498 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
499499 ADT7462_PIN28_VOLT &&
@@ -531,7 +531,7 @@ static int voltage_multiplier(struct adt7462_data *data, int which) · 31 unmodified lines
531531 case 3:
532532 return 7800;
533533 }
534− /* fall through */
534+ fallthrough;
535535 case 2:
536536 if (!(data->pin_cfg[1] & ADT7462_PIN22_INPUT))
537537 return 62500;
@@ -589,7 +589,7 @@ static int voltage_multiplier(struct adt7462_data *data, int which) · 51 unmodified lines
589589 case 3:
590590 return 7800;
591591 }
592− /* fall through */
592+ fallthrough;
593593 case 11:
594594 case 12:
595595 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
drivers/hwmon/applesmc.c+16−15
@@ -753,15 +753,18 @@ static ssize_t applesmc_light_show(struct device *dev, · 752 unmodified lines
753753 }
754754
755755 ret = applesmc_read_key(LIGHT_SENSOR_LEFT_KEY, buffer, data_length);
756+ if (ret)
757+ goto out;
756758 /* newer macbooks report a single 10-bit bigendian value */
757759 if (data_length == 10) {
758760 left = be16_to_cpu(*(__be16 *)(buffer + 6)) >> 2;
759761 goto out;
760762 }
761763 left = buffer[2];
764+
765+ ret = applesmc_read_key(LIGHT_SENSOR_RIGHT_KEY, buffer, data_length);
762766 if (ret)
763767 goto out;
764− ret = applesmc_read_key(LIGHT_SENSOR_RIGHT_KEY, buffer, data_length);
765768 right = buffer[2];
766769
767770 out:
@@ -810,12 +813,11 @@ static ssize_t applesmc_show_fan_speed(struct device *dev, · 42 unmodified lines
810813 to_index(attr));
811814
812815 ret = applesmc_read_key(newkey, buffer, 2);
813− speed = ((buffer[0] << 8 | buffer[1]) >> 2);
814−
815816 if (ret)
816817 return ret;
817− else
818− return snprintf(sysfsbuf, PAGE_SIZE, "%u\n", speed);
818+
819+ speed = ((buffer[0] << 8 | buffer[1]) >> 2);
820+ return snprintf(sysfsbuf, PAGE_SIZE, "%u\n", speed);
819821 }
820822
821823 static ssize_t applesmc_store_fan_speed(struct device *dev,
@@ -851,12 +853,11 @@ static ssize_t applesmc_show_fan_manual(struct device *dev, · 29 unmodified lines
851853 u8 buffer[2];
852854
853855 ret = applesmc_read_key(FANS_MANUAL, buffer, 2);
854− manual = ((buffer[0] << 8 | buffer[1]) >> to_index(attr)) & 0x01;
855−
856856 if (ret)
857857 return ret;
858− else
859− return snprintf(sysfsbuf, PAGE_SIZE, "%d\n", manual);
858+
859+ manual = ((buffer[0] << 8 | buffer[1]) >> to_index(attr)) & 0x01;
860+ return snprintf(sysfsbuf, PAGE_SIZE, "%d\n", manual);
860861 }
861862
862863 static ssize_t applesmc_store_fan_manual(struct device *dev,
@@ -872,10 +873,11 @@ static ssize_t applesmc_store_fan_manual(struct device *dev, · 9 unmodified lines
872873 return -EINVAL;
873874
874875 ret = applesmc_read_key(FANS_MANUAL, buffer, 2);
875− val = (buffer[0] << 8 | buffer[1]);
876876 if (ret)
877877 goto out;
878878
879+ val = (buffer[0] << 8 | buffer[1]);
880+
879881 if (input)
880882 val = val | (0x01 << to_index(attr));
881883 else
@@ -951,13 +953,12 @@ static ssize_t applesmc_key_count_show(struct device *dev, · 69 unmodified lines
951953 u32 count;
952954
953955 ret = applesmc_read_key(KEY_COUNT_KEY, buffer, 4);
954− count = ((u32)buffer[0]<<24) + ((u32)buffer[1]<<16) +
955− ((u32)buffer[2]<<8) + buffer[3];
956−
957956 if (ret)
958957 return ret;
959− else
960− return snprintf(sysfsbuf, PAGE_SIZE, "%d\n", count);
958+
959+ count = ((u32)buffer[0]<<24) + ((u32)buffer[1]<<16) +
960+ ((u32)buffer[2]<<8) + buffer[3];
961+ return snprintf(sysfsbuf, PAGE_SIZE, "%d\n", count);
961962 }
962963
963964 static ssize_t applesmc_key_at_index_read_show(struct device *dev,
drivers/hwmon/emc1403.c+2−2
@@ -406,10 +406,10 @@ static int emc1403_probe(struct i2c_client *client, · 405 unmodified lines
406406 switch (id->driver_data) {
407407 case emc1404:
408408 data->groups[2] = &emc1404_group;
409− /* fall through */
409+ fallthrough;
410410 case emc1403:
411411 data->groups[1] = &emc1403_group;
412− /* fall through */
412+ fallthrough;
413413 case emc1402:
414414 data->groups[0] = &emc1402_group;
415415 }
drivers/hwmon/f71882fg.c+2−2
@@ -1285,7 +1285,7 @@ static struct f71882fg_data *f71882fg_update_device(struct device *dev) · 1284 unmodified lines
12851285 data->pwm_auto_point_pwm[nr][0] =
12861286 f71882fg_read8(data,
12871287 F71882FG_REG_POINT_PWM(nr, 0));
1288− /* Fall through */
1288+ fallthrough;
12891289 case f71862fg:
12901290 data->pwm_auto_point_pwm[nr][1] =
12911291 f71882fg_read8(data,
@@ -2442,7 +2442,7 @@ static int f71882fg_probe(struct platform_device *pdev) · 1150 unmodified lines
24422442 case f71869a:
24432443 /* These always have signed auto point temps */
24442444 data->auto_point_temp_signed = 1;
2445− /* Fall through - to select correct fan/pwm reg bank! */
2445+ fallthrough; /* to select correct fan/pwm reg bank! */
24462446 case f71889fg:
24472447 case f71889ed:
24482448 case f71889a:
drivers/hwmon/gsc-hwmon.c+1−0
@@ -172,6 +172,7 @@ gsc_hwmon_read(struct device *dev, enum hwmon_sensor_types type, u32 attr, · 171 unmodified lines
172172 case mode_temperature:
173173 if (tmp > 0x8000)
174174 tmp -= 0xffff;
175+ tmp *= 100; /* convert to millidegrees celsius */
175176 break;
176177 case mode_voltage_raw:
177178 tmp = clamp_val(tmp, 0, BIT(GSC_HWMON_RESOLUTION));
drivers/hwmon/hwmon-vid.c+2−2
@@ -96,7 +96,7 @@ int vid_from_reg(int val, u8 vrm) · 95 unmodified lines
9696 val &= 0x1f;
9797 if (val == 0x1f)
9898 return 0;
99− /* fall through */
99+ fallthrough;
100100 case 25: /* AMD NPT 0Fh */
101101 val &= 0x3f;
102102 return (val < 32) ? 1550 - 25 * val
@@ -122,7 +122,7 @@ int vid_from_reg(int val, u8 vrm) · 19 unmodified lines
122122
123123 case 84: /* VRM 8.4 */
124124 val &= 0x0f;
125− /* fall through */
125+ fallthrough;
126126 case 82: /* VRM 8.2 */
127127 val &= 0x1f;
128128 return val == 0x1f ? 0 :
drivers/hwmon/ina3221.c+1−1
@@ -352,7 +352,7 @@ static int ina3221_read_curr(struct device *dev, u32 attr, · 351 unmodified lines
352352 if (ret)
353353 return ret;
354354
355− /* fall through */
355+ fallthrough;
356356 case hwmon_curr_crit:
357357 case hwmon_curr_max:
358358 if (!resistance_uo)
drivers/hwmon/nct6775.c+1−1
@@ -2669,7 +2669,7 @@ static void pwm_update_registers(struct nct6775_data *data, int nr) · 2668 unmodified lines
26692669 case thermal_cruise:
26702670 nct6775_write_value(data, data->REG_TARGET[nr],
26712671 data->target_temp[nr]);
2672− /* fall through */
2672+ fallthrough;
26732673 default:
26742674 reg = nct6775_read_value(data, data->REG_FAN_MODE[nr]);
26752675 reg = (reg & ~data->tolerance_mask) |
drivers/hwmon/nct7904.c+2−2
@@ -231,7 +231,7 @@ static int nct7904_read_fan(struct device *dev, u32 attr, int channel, · 230 unmodified lines
231231 if (ret < 0)
232232 return ret;
233233 cnt = ((ret & 0xff00) >> 3) | (ret & 0x1f);
234− if (cnt == 0x1fff)
234+ if (cnt == 0 || cnt == 0x1fff)
235235 rpm = 0;
236236 else
237237 rpm = 1350000 / cnt;
@@ -243,7 +243,7 @@ static int nct7904_read_fan(struct device *dev, u32 attr, int channel, · 5 unmodified lines
243243 if (ret < 0)
244244 return ret;
245245 cnt = ((ret & 0xff00) >> 3) | (ret & 0x1f);
246− if (cnt == 0x1fff)
246+ if (cnt == 0 || cnt == 0x1fff)
247247 rpm = 0;
248248 else
249249 rpm = 1350000 / cnt;
drivers/hwmon/occ/common.c+3−3
@@ -752,7 +752,7 @@ static int occ_setup_sensor_attrs(struct occ *occ) · 751 unmodified lines
752752 switch (sensors->freq.version) {
753753 case 2:
754754 show_freq = occ_show_freq_2;
755− /* fall through */
755+ fallthrough;
756756 case 1:
757757 num_attrs += (sensors->freq.num_sensors * 2);
758758 break;
@@ -763,7 +763,7 @@ static int occ_setup_sensor_attrs(struct occ *occ) · 4 unmodified lines
763763 switch (sensors->power.version) {
764764 case 2:
765765 show_power = occ_show_power_2;
766− /* fall through */
766+ fallthrough;
767767 case 1:
768768 num_attrs += (sensors->power.num_sensors * 4);
769769 break;
@@ -781,7 +781,7 @@ static int occ_setup_sensor_attrs(struct occ *occ) · 11 unmodified lines
781781 break;
782782 case 3:
783783 show_caps = occ_show_caps_3;
784− /* fall through */
784+ fallthrough;
785785 case 2:
786786 num_attrs += (sensors->caps.num_sensors * 8);
787787 break;
drivers/hwmon/pmbus/isl68137.c+6−1
@@ -67,6 +67,7 @@ enum variants { · 66 unmodified lines
6767 raa_dmpvr1_2rail,
6868 raa_dmpvr2_1rail,
6969 raa_dmpvr2_2rail,
70+ raa_dmpvr2_2rail_nontc,
7071 raa_dmpvr2_3rail,
7172 raa_dmpvr2_hv,
7273 };
@@ -241,6 +242,10 @@ static int isl68137_probe(struct i2c_client *client, · 168 unmodified lines
241242 info->pages = 1;
242243 info->read_word_data = raa_dmpvr2_read_word_data;
243244 break;
245+ case raa_dmpvr2_2rail_nontc:
246+ info->func[0] &= ~PMBUS_HAVE_TEMP;
247+ info->func[1] &= ~PMBUS_HAVE_TEMP;
248+ fallthrough;
244249 case raa_dmpvr2_2rail:
245250 info->pages = 2;
246251 info->read_word_data = raa_dmpvr2_read_word_data;
@@ -304,7 +309,7 @@ static const struct i2c_device_id raa_dmpvr_id[] = { · 57 unmodified lines
304309 {"raa228000", raa_dmpvr2_hv},
305310 {"raa228004", raa_dmpvr2_hv},
306311 {"raa228006", raa_dmpvr2_hv},
307− {"raa228228", raa_dmpvr2_2rail},
312+ {"raa228228", raa_dmpvr2_2rail_nontc},
308313 {"raa229001", raa_dmpvr2_2rail},
309314 {"raa229004", raa_dmpvr2_2rail},
310315 {}
drivers/hwmon/w83627hf.c+1−1
@@ -1213,7 +1213,7 @@ temp_type_store(struct device *dev, struct device_attribute *devattr, · 1212 unmodified lines
12131213 case W83781D_DEFAULT_BETA:
12141214 dev_warn(dev, "Sensor type %d is deprecated, please use 4 "
12151215 "instead\n", W83781D_DEFAULT_BETA);
1216− /* fall through */
1216+ fallthrough;
12171217 case 4: /* thermistor */
12181218 tmp = w83627hf_read_value(data, W83781D_REG_SCFG1);
12191219 w83627hf_write_value(data, W83781D_REG_SCFG1,
drivers/hwmon/w83781d.c+1−1
@@ -814,7 +814,7 @@ store_sensor(struct device *dev, struct device_attribute *da, · 813 unmodified lines
814814 dev_warn(dev,
815815 "Sensor type %d is deprecated, please use 4 instead\n",
816816 W83781D_DEFAULT_BETA);
817− /* fall through */
817+ fallthrough;
818818 case 4: /* thermistor */
819819 tmp = w83781d_read_value(data, W83781D_REG_SCFG1);
820820 w83781d_write_value(data, W83781D_REG_SCFG1,
drivers/hwmon/w83795.c+1−1
@@ -2127,7 +2127,7 @@ static void w83795_apply_temp_config(struct w83795_data *data, u8 config, · 2126 unmodified lines
21272127 if (temp_chan >= 4)
21282128 break;
21292129 data->temp_mode |= 1 << temp_chan;
2130− /* fall through */
2130+ fallthrough;
21312131 case 0x3: /* Thermistor */
21322132 data->has_temp |= 1 << temp_chan;
21332133 break;
drivers/hwtracing/coresight/coresight-cpu-debug.c+2−2
@@ -346,10 +346,10 @@ static void debug_init_arch_data(void *info) · 345 unmodified lines
346346 switch (mode) {
347347 case EDDEVID_IMPL_FULL:
348348 drvdata->edvidsr_present = true;
349− /* Fall through */
349+ fallthrough;
350350 case EDDEVID_IMPL_EDPCSR_EDCIDSR:
351351 drvdata->edcidsr_present = true;
352− /* Fall through */
352+ fallthrough;
353353 case EDDEVID_IMPL_EDPCSR:
354354 /*
355355 * In ARM DDI 0487A.k, the EDDEVID1.PCSROffset is used to
drivers/hwtracing/coresight/coresight-etm4x.c+0−1
@@ -1382,7 +1382,6 @@ static int etm4_cpu_pm_notify(struct notifier_block *nb, unsigned long cmd, · 1381 unmodified lines
13821382 return NOTIFY_BAD;
13831383 break;
13841384 case CPU_PM_EXIT:
1385− /* fallthrough */
13861385 case CPU_PM_ENTER_FAILED:
13871386 if (drvdata->state_needs_restore)
13881387 etm4_cpu_restore(drvdata);
drivers/hwtracing/coresight/coresight-tmc.c+0−2
@@ -84,9 +84,7 @@ u32 tmc_get_memwidth_mask(struct tmc_drvdata *drvdata) · 83 unmodified lines
8484 */
8585 switch (drvdata->memwidth) {
8686 case TMC_MEM_INTF_WIDTH_32BITS:
87− /* fallthrough */
8887 case TMC_MEM_INTF_WIDTH_64BITS:
89− /* fallthrough */
9088 case TMC_MEM_INTF_WIDTH_128BITS:
9189 mask = GENMASK(31, 4);
9290 break;
drivers/hwtracing/intel_th/sth.c+2−2
@@ -84,11 +84,11 @@ static ssize_t notrace sth_stm_packet(struct stm_data *stm_data, · 83 unmodified lines
8484 /* Global packets (GERR, XSYNC, TRIG) are sent with register writes */
8585 case STP_PACKET_GERR:
8686 reg += 4;
87− /* fall through */
87+ fallthrough;
8888
8989 case STP_PACKET_XSYNC:
9090 reg += 8;
91− /* fall through */
91+ fallthrough;
9292
9393 case STP_PACKET_TRIG:
9494 if (flags & STP_PACKET_TIMESTAMPED)
drivers/i2c/busses/i2c-bcm-iproc.c+2−2
@@ -720,7 +720,7 @@ static int bcm_iproc_i2c_xfer_internal(struct bcm_iproc_i2c_dev *iproc_i2c, · 719 unmodified lines
720720
721721 /* mark the last byte */
722722 if (!process_call && (i == msg->len - 1))
723− val |= 1 << M_TX_WR_STATUS_SHIFT;
723+ val |= BIT(M_TX_WR_STATUS_SHIFT);
724724
725725 iproc_i2c_wr_reg(iproc_i2c, M_TX_OFFSET, val);
726726 }
@@ -738,7 +738,7 @@ static int bcm_iproc_i2c_xfer_internal(struct bcm_iproc_i2c_dev *iproc_i2c, · 11 unmodified lines
738738 */
739739 addr = i2c_8bit_addr_from_msg(msg);
740740 /* mark it the last byte out */
741− val = addr | (1 << M_TX_WR_STATUS_SHIFT);
741+ val = addr | BIT(M_TX_WR_STATUS_SHIFT);
742742 iproc_i2c_wr_reg(iproc_i2c, M_TX_OFFSET, val);
743743 }
744744
drivers/i2c/busses/i2c-omap.c+0−1
@@ -1425,7 +1425,6 @@ omap_i2c_probe(struct platform_device *pdev) · 1424 unmodified lines
14251425 major = OMAP_I2C_REV_SCHEME_0_MAJOR(omap->rev);
14261426 break;
14271427 case OMAP_I2C_SCHEME_1:
1428− /* FALLTHROUGH */
14291428 default:
14301429 omap->regs = (u8 *)reg_map_ip_v2;
14311430 rev = (rev << 16) |
drivers/i2c/busses/i2c-opal.c+1−1
@@ -125,7 +125,7 @@ static int i2c_opal_smbus_xfer(struct i2c_adapter *adap, u16 addr, · 124 unmodified lines
125125 case I2C_SMBUS_BYTE:
126126 req.buffer_ra = cpu_to_be64(__pa(&data->byte));
127127 req.size = cpu_to_be32(1);
128− /* Fall through */
128+ fallthrough;
129129 case I2C_SMBUS_QUICK:
130130 req.type = (read_write == I2C_SMBUS_READ) ?
131131 OPAL_I2C_RAW_READ : OPAL_I2C_RAW_WRITE;
drivers/i2c/busses/i2c-rcar.c+1−0
@@ -590,6 +590,7 @@ static bool rcar_i2c_slave_irq(struct rcar_i2c_priv *priv) · 589 unmodified lines
590590 /* master sent stop */
591591 if (ssr_filtered & SSR) {
592592 i2c_slave_event(priv->slave, I2C_SLAVE_STOP, &value);
593+ rcar_i2c_write(priv, ICSCR, SIE | SDBS); /* clear our NACK */
593594 rcar_i2c_write(priv, ICSIER, SAR);
594595 rcar_i2c_write(priv, ICSSR, ~SSR & 0xff);
595596 }
drivers/i2c/i2c-core-acpi.c+0−10
@@ -276,16 +276,6 @@ void i2c_acpi_register_devices(struct i2c_adapter *adap) · 275 unmodified lines
276276 dev_warn(&adap->dev, "failed to enumerate I2C slaves\n");
277277 }
278278
279−const struct acpi_device_id *
280−i2c_acpi_match_device(const struct acpi_device_id *matches,
281− struct i2c_client *client)
282−{
283− if (!(client && matches))
284− return NULL;
285−
286− return acpi_match_device(matches, &client->dev);
287−}
288−
289279 static const struct acpi_device_id i2c_acpi_force_400khz_device_ids[] = {
290280 /*
291281 * These Silead touchscreen controllers only work at 400KHz, for
drivers/i2c/i2c-core-base.c+1−1
@@ -480,7 +480,7 @@ static int i2c_device_probe(struct device *dev) · 479 unmodified lines
480480 * or ACPI ID table is supplied for the probing device.
481481 */
482482 if (!driver->id_table &&
483− !i2c_acpi_match_device(dev->driver->acpi_match_table, client) &&
483+ !acpi_driver_match_device(dev, dev->driver) &&
484484 !i2c_of_match_device(dev->driver->of_match_table, client)) {
485485 status = -ENODEV;
486486 goto put_sync_adapter;
drivers/i2c/i2c-core.h+0−9
@@ -59,20 +59,11 @@ static inline int __i2c_check_suspended(struct i2c_adapter *adap) · 58 unmodified lines
5959 }
6060
6161 #ifdef CONFIG_ACPI
62−const struct acpi_device_id *
63−i2c_acpi_match_device(const struct acpi_device_id *matches,
64− struct i2c_client *client);
6562 void i2c_acpi_register_devices(struct i2c_adapter *adap);
6663
6764 int i2c_acpi_get_irq(struct i2c_client *client);
6865 #else /* CONFIG_ACPI */
6966 static inline void i2c_acpi_register_devices(struct i2c_adapter *adap) { }
70−static inline const struct acpi_device_id *
71−i2c_acpi_match_device(const struct acpi_device_id *matches,
72− struct i2c_client *client)
73−{
74− return NULL;
75−}
7667
7768 static inline int i2c_acpi_get_irq(struct i2c_client *client)
7869 {
drivers/i3c/master/dw-i3c-master.c+1−1
@@ -603,7 +603,7 @@ static int dw_i3c_master_bus_init(struct i3c_master_controller *m) · 602 unmodified lines
603603 ret = dw_i2c_clk_cfg(master);
604604 if (ret)
605605 return ret;
606− /* fall through */
606+ fallthrough;
607607 case I3C_BUS_MODE_PURE:
608608 ret = dw_i3c_clk_cfg(master);
609609 if (ret)
drivers/ide/hpt366.c+3−3
@@ -575,14 +575,14 @@ static u8 hpt3xx_udma_filter(ide_drive_t *drive) · 574 unmodified lines
575575 if (!HPT370_ALLOW_ATA100_5 ||
576576 check_in_drive_list(drive, bad_ata100_5))
577577 return ATA_UDMA4;
578− /* fall through */
578+ fallthrough;
579579 case HPT372 :
580580 case HPT372A:
581581 case HPT372N:
582582 case HPT374 :
583583 if (ata_id_is_sata(drive->id))
584584 mask &= ~0x0e;
585− /* fall through */
585+ fallthrough;
586586 default:
587587 return mask;
588588 }
@@ -602,7 +602,7 @@ static u8 hpt3xx_mdma_filter(ide_drive_t *drive) · 13 unmodified lines
602602 case HPT374 :
603603 if (ata_id_is_sata(drive->id))
604604 return 0x00;
605− /* fall through */
605+ fallthrough;
606606 default:
607607 return 0x07;
608608 }
drivers/ide/ide-cd.c+2−2
@@ -350,7 +350,7 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat) · 349 unmodified lines
350350 */
351351 if (scsi_req(rq)->cmd[0] == GPCMD_START_STOP_UNIT)
352352 break;
353− /* fall-through */
353+ fallthrough;
354354 case DATA_PROTECT:
355355 /*
356356 * No point in retrying after an illegal request or data
@@ -750,7 +750,7 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive) · 393 unmodified lines
750750 case REQ_OP_DRV_IN:
751751 case REQ_OP_DRV_OUT:
752752 expiry = ide_cd_expiry;
753− /*FALLTHRU*/
753+ fallthrough;
754754 default:
755755 timeout = ATAPI_WAIT_PC;
756756 break;
drivers/ide/ide-floppy.c+1−1
@@ -428,7 +428,7 @@ static int ide_floppy_get_capacity(ide_drive_t *drive) · 427 unmodified lines
428428 * (maintains previous driver behaviour)
429429 */
430430 break;
431− /* fall through */
431+ fallthrough;
432432 case CAPACITY_CURRENT:
433433 /* Normal Zip/LS-120 disks */
434434 if (memcmp(cap_desc, &floppy->cap_desc, 8))
drivers/ide/ide-probe.c+1−1
@@ -143,7 +143,7 @@ static void ide_classify_atapi_dev(ide_drive_t *drive) · 142 unmodified lines
143143 }
144144 /* Early cdrom models used zero */
145145 type = ide_cdrom;
146− /* fall through */
146+ fallthrough;
147147 case ide_cdrom:
148148 drive->dev_flags |= IDE_DFLAG_REMOVABLE;
149149 #ifdef CONFIG_PPC
drivers/ide/ide-taskfile.c+6−6
@@ -129,7 +129,7 @@ ide_startstop_t do_rw_taskfile(ide_drive_t *drive, struct ide_cmd *orig_cmd) · 128 unmodified lines
129129 return pre_task_out_intr(drive, cmd);
130130 }
131131 handler = task_pio_intr;
132− /* fall through */
132+ fallthrough;
133133 case ATA_PROT_NODATA:
134134 if (handler == NULL)
135135 handler = task_no_data_intr;
@@ -141,7 +141,7 @@ ide_startstop_t do_rw_taskfile(ide_drive_t *drive, struct ide_cmd *orig_cmd) · 5 unmodified lines
141141 hwif->expiry = dma_ops->dma_timer_expiry;
142142 ide_execute_command(drive, cmd, ide_dma_intr, 2 * WAIT_CMD);
143143 dma_ops->dma_start(drive);
144− /* fall through */
144+ fallthrough;
145145 default:
146146 return ide_started;
147147 }
@@ -579,10 +579,10 @@ int ide_taskfile_ioctl(ide_drive_t *drive, unsigned long arg) · 431 unmodified lines
579579 goto abort;
580580 }
581581 cmd.tf_flags |= IDE_TFLAG_MULTI_PIO;
582− /* fall through */
582+ fallthrough;
583583 case TASKFILE_OUT:
584584 cmd.protocol = ATA_PROT_PIO;
585− /* fall through */
585+ fallthrough;
586586 case TASKFILE_OUT_DMAQ:
587587 case TASKFILE_OUT_DMA:
588588 cmd.tf_flags |= IDE_TFLAG_WRITE;
@@ -598,10 +598,10 @@ int ide_taskfile_ioctl(ide_drive_t *drive, unsigned long arg) · 9 unmodified lines
598598 goto abort;
599599 }
600600 cmd.tf_flags |= IDE_TFLAG_MULTI_PIO;
601− /* fall through */
601+ fallthrough;
602602 case TASKFILE_IN:
603603 cmd.protocol = ATA_PROT_PIO;
604− /* fall through */
604+ fallthrough;
605605 case TASKFILE_IN_DMAQ:
606606 case TASKFILE_IN_DMA:
607607 nsect = taskin / SECTOR_SIZE;
drivers/ide/sis5513.c+1−1
@@ -494,7 +494,7 @@ static int init_chipset_sis5513(struct pci_dev *dev) · 493 unmodified lines
494494 pci_read_config_byte(dev, 0x09, &reg);
495495 if ((reg & 0x0f) != 0x00)
496496 pci_write_config_byte(dev, 0x09, reg&0xf0);
497− /* fall through */
497+ fallthrough;
498498 case ATA_16:
499499 /* force per drive recovery and active timings
500500 needed on ATA_33 and below chips */
drivers/idle/intel_idle.c+0−16
@@ -89,14 +89,6 @@ static unsigned int mwait_substates __initdata; · 88 unmodified lines
8989 */
9090 #define CPUIDLE_FLAG_ALWAYS_ENABLE BIT(15)
9191
92−/*
93− * Set this flag for states where the HW flushes the TLB for us
94− * and so we don't need cross-calls to keep it consistent.
95− * If this flag is set, SW flushes the TLB, so even if the
96− * HW doesn't do the flushing, this flag is safe to use.
97− */
98−#define CPUIDLE_FLAG_TLB_FLUSHED BIT(16)
99−
10092 /*
10193 * MWAIT takes an 8-bit "hint" in EAX "suggesting"
10294 * the C-state (top nibble) and sub-state (bottom nibble)
@@ -131,14 +123,6 @@ static __cpuidle int intel_idle(struct cpuidle_device *dev, · 28 unmodified lines
131123 unsigned long eax = flg2MWAIT(state->flags);
132124 unsigned long ecx = 1; /* break on interrupt flag */
133125 bool tick;
134− int cpu = smp_processor_id();
135−
136− /*
137− * leave_mm() to avoid costly and often unnecessary wakeups
138− * for flushing the user TLB's associated with the active mm.
139− */
140− if (state->flags & CPUIDLE_FLAG_TLB_FLUSHED)
141− leave_mm(cpu);
142126
143127 if (!static_cpu_has(X86_FEATURE_ARAT)) {
144128 /*
drivers/iio/accel/mma8452.c+1−1
@@ -1580,7 +1580,7 @@ static int mma8452_probe(struct i2c_client *client, · 1579 unmodified lines
15801580 case FXLS8471_DEVICE_ID:
15811581 if (ret == data->chip_info->chip_id)
15821582 break;
1583− /* fall through */
1583+ fallthrough;
15841584 default:
15851585 ret = -ENODEV;
15861586 goto disable_regulators;
drivers/iio/adc/ab8500-gpadc.c+1−1
@@ -484,7 +484,7 @@ static int ab8500_gpadc_read(struct ab8500_gpadc *gpadc, · 483 unmodified lines
484484 delay_max = 10000; /* large range optimises sleepmode */
485485 break;
486486 }
487− /* Fall through */
487+ fallthrough;
488488 default:
489489 ctrl1 |= AB8500_GPADC_CTRL1_BUF_ENA;
490490 break;
drivers/iio/adc/cpcap-adc.c+1−1
@@ -690,7 +690,7 @@ static void cpcap_adc_phase(struct cpcap_adc_request *req) · 689 unmodified lines
690690 break;
691691 case CPCAP_ADC_BATTI_PI17:
692692 index = req->bank_index;
693− /* fallthrough */
693+ fallthrough;
694694 default:
695695 req->result += conv_tbl[index].cal_offset;
696696 req->result += conv_tbl[index].align_offset;
drivers/iio/chemical/sps30.c+1−1
@@ -118,7 +118,7 @@ static int sps30_do_cmd(struct sps30_state *state, u16 cmd, u8 *data, int size) · 117 unmodified lines
118118 case SPS30_READ_AUTO_CLEANING_PERIOD:
119119 buf[0] = SPS30_AUTO_CLEANING_PERIOD >> 8;
120120 buf[1] = (u8)(SPS30_AUTO_CLEANING_PERIOD & 0xff);
121− /* fall through */
121+ fallthrough;
122122 case SPS30_READ_DATA_READY_FLAG:
123123 case SPS30_READ_DATA:
124124 case SPS30_READ_SERIAL:
drivers/iio/dac/ad5592r-base.c+0−2
@@ -220,7 +220,6 @@ static int ad5592r_set_channel_modes(struct ad5592r_state *st) · 219 unmodified lines
220220 break;
221221
222222 case CH_MODE_UNUSED:
223− /* fall-through */
224223 default:
225224 switch (st->channel_offstate[i]) {
226225 case CH_OFFSTATE_OUT_TRISTATE:
@@ -237,7 +236,6 @@ static int ad5592r_set_channel_modes(struct ad5592r_state *st) · 10 unmodified lines
237236 break;
238237
239238 case CH_OFFSTATE_PULLDOWN:
240− /* fall-through */
241239 default:
242240 pulldown |= BIT(i);
243241 break;
drivers/iio/dac/dpot-dac.c+3−2
@@ -74,11 +74,12 @@ static int dpot_dac_read_raw(struct iio_dev *indio_dev, · 73 unmodified lines
7474 case IIO_VAL_INT:
7575 /*
7676 * Convert integer scale to fractional scale by
77− * setting the denominator (val2) to one, and...
77+ * setting the denominator (val2) to one...
7878 */
7979 *val2 = 1;
8080 ret = IIO_VAL_FRACTIONAL;
81− /* fall through */
81+ /* ...and fall through. Say it again for GCC. */
82+ fallthrough;
8283 case IIO_VAL_FRACTIONAL:
8384 *val *= regulator_get_voltage(dac->vref) / 1000;
8485 *val2 *= dac->max_ohms;
drivers/iio/health/max30102.c+2−2
@@ -273,10 +273,10 @@ static int max30102_read_measurement(struct max30102_data *data, · 272 unmodified lines
273273 switch (measurements) {
274274 case 3:
275275 MAX30102_COPY_DATA(2);
276− /* fall through */
276+ fallthrough;
277277 case 2:
278278 MAX30102_COPY_DATA(1);
279− /* fall through */
279+ fallthrough;
280280 case 1:
281281 MAX30102_COPY_DATA(0);
282282 break;
drivers/iio/imu/adis.c+3−3
@@ -97,11 +97,11 @@ int __adis_write_reg(struct adis *adis, unsigned int reg, · 96 unmodified lines
9797 adis->tx[9] = (value >> 24) & 0xff;
9898 adis->tx[6] = ADIS_WRITE_REG(reg + 2);
9999 adis->tx[7] = (value >> 16) & 0xff;
100− /* fall through */
100+ fallthrough;
101101 case 2:
102102 adis->tx[4] = ADIS_WRITE_REG(reg + 1);
103103 adis->tx[5] = (value >> 8) & 0xff;
104− /* fall through */
104+ fallthrough;
105105 case 1:
106106 adis->tx[2] = ADIS_WRITE_REG(reg);
107107 adis->tx[3] = value & 0xff;
@@ -191,7 +191,7 @@ int __adis_read_reg(struct adis *adis, unsigned int reg, · 83 unmodified lines
191191 adis->tx[2] = ADIS_READ_REG(reg + 2);
192192 adis->tx[3] = 0;
193193 spi_message_add_tail(&xfers[1], &msg);
194− /* fall through */
194+ fallthrough;
195195 case 2:
196196 adis->tx[4] = ADIS_READ_REG(reg);
197197 adis->tx[5] = 0;
drivers/iio/industrialio-core.c+2−2
@@ -599,7 +599,7 @@ static ssize_t __iio_format_value(char *buf, size_t len, unsigned int type, · 598 unmodified lines
599599 return scnprintf(buf, len, "%d", vals[0]);
600600 case IIO_VAL_INT_PLUS_MICRO_DB:
601601 scale_db = true;
602− /* fall through */
602+ fallthrough;
603603 case IIO_VAL_INT_PLUS_MICRO:
604604 if (vals[1] < 0)
605605 return scnprintf(buf, len, "-%d.%06u%s", abs(vals[0]),
@@ -918,7 +918,7 @@ static ssize_t iio_write_channel_info(struct device *dev, · 312 unmodified lines
918918 break;
919919 case IIO_VAL_INT_PLUS_MICRO_DB:
920920 scale_db = true;
921− /* fall through */
921+ fallthrough;
922922 case IIO_VAL_INT_PLUS_MICRO:
923923 fract_mult = 100000;
924924 break;
drivers/iio/light/si1145.c+1−1
@@ -1042,7 +1042,7 @@ static int si1145_initialize(struct si1145_data *data) · 1041 unmodified lines
10421042 SI1145_LED_CURRENT_45mA);
10431043 if (ret < 0)
10441044 return ret;
1045− /* fallthrough */
1045+ fallthrough;
10461046 case 2:
10471047 ret = i2c_smbus_write_byte_data(client,
10481048 SI1145_REG_PS_LED21,
drivers/iio/magnetometer/ak8974.c+1−1
@@ -499,7 +499,7 @@ static int ak8974_detect(struct ak8974 *ak8974) · 498 unmodified lines
499499 switch (whoami) {
500500 case AK8974_WHOAMI_VALUE_AMI306:
501501 name = "ami306";
502− /* fall-through */
502+ fallthrough;
503503 case AK8974_WHOAMI_VALUE_AMI305:
504504 ret = regmap_read(ak8974->map, AMI305_VER, &fw);
505505 if (ret)
drivers/infiniband/core/cm.c+6−6
@@ -3034,7 +3034,7 @@ static int cm_rej_handler(struct cm_work *work) · 3033 unmodified lines
30343034 case IB_CM_REP_SENT:
30353035 case IB_CM_MRA_REP_RCVD:
30363036 ib_cancel_mad(cm_id_priv->av.port->mad_agent, cm_id_priv->msg);
3037− /* fall through */
3037+ fallthrough;
30383038 case IB_CM_REQ_RCVD:
30393039 case IB_CM_MRA_REQ_SENT:
30403040 if (IBA_GET(CM_REJ_REASON, rej_msg) == IB_CM_REJ_STALE_CONN)
@@ -3044,7 +3044,7 @@ static int cm_rej_handler(struct cm_work *work) · 3 unmodified lines
30443044 break;
30453045 case IB_CM_DREQ_SENT:
30463046 ib_cancel_mad(cm_id_priv->av.port->mad_agent, cm_id_priv->msg);
3047− /* fall through */
3047+ fallthrough;
30483048 case IB_CM_REP_RCVD:
30493049 case IB_CM_MRA_REP_SENT:
30503050 cm_enter_timewait(cm_id_priv);
@@ -3058,7 +3058,7 @@ static int cm_rej_handler(struct cm_work *work) · 7 unmodified lines
30583058 cm_enter_timewait(cm_id_priv);
30593059 break;
30603060 }
3061− /* fall through */
3061+ fallthrough;
30623062 default:
30633063 pr_debug("%s: local_id %d, cm_id_priv->id.state: %d\n",
30643064 __func__, be32_to_cpu(cm_id_priv->id.local_id),
@@ -3116,7 +3116,7 @@ int ib_send_cm_mra(struct ib_cm_id *cm_id, · 51 unmodified lines
31163116 msg_response = CM_MSG_RESPONSE_OTHER;
31173117 break;
31183118 }
3119− /* fall through */
3119+ fallthrough;
31203120 default:
31213121 pr_debug("%s: local_id %d, cm_id_priv->id.state: %d\n",
31223122 __func__, be32_to_cpu(cm_id_priv->id.local_id),
@@ -3227,7 +3227,7 @@ static int cm_mra_handler(struct cm_work *work) · 104 unmodified lines
32273227 case IB_CM_MRA_REP_RCVD:
32283228 atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
32293229 counter[CM_MRA_COUNTER]);
3230− /* fall through */
3230+ fallthrough;
32313231 default:
32323232 pr_debug("%s local_id %d, cm_id_priv->id.state: %d\n",
32333233 __func__, be32_to_cpu(cm_id_priv->id.local_id),
@@ -4214,7 +4214,7 @@ static int cm_init_qp_rts_attr(struct cm_id_private *cm_id_priv, · 980 unmodified lines
42144214 qp_attr->retry_cnt = cm_id_priv->retry_count;
42154215 qp_attr->rnr_retry = cm_id_priv->rnr_retry_count;
42164216 qp_attr->max_rd_atomic = cm_id_priv->initiator_depth;
4217− /* fall through */
4217+ fallthrough;
42184218 case IB_QPT_XRC_TGT:
42194219 *qp_attr_mask |= IB_QP_TIMEOUT;
42204220 qp_attr->timeout = cm_id_priv->av.timeout;
drivers/infiniband/core/cma.c+2−1
@@ -1985,7 +1985,8 @@ static int cma_ib_handler(struct ib_cm_id *cm_id, · 1984 unmodified lines
19851985 event.event = RDMA_CM_EVENT_ESTABLISHED;
19861986 break;
19871987 case IB_CM_DREQ_ERROR:
1988− event.status = -ETIMEDOUT; /* fall through */
1988+ event.status = -ETIMEDOUT;
1989+ fallthrough;
19891990 case IB_CM_DREQ_RECEIVED:
19901991 case IB_CM_DREP_RECEIVED:
19911992 if (!cma_comp_exch(id_priv, RDMA_CM_CONNECT,
drivers/infiniband/core/device.c+1−1
@@ -2751,7 +2751,7 @@ static int __init ib_core_init(void) · 2750 unmodified lines
27512751
27522752 ret = addr_init();
27532753 if (ret) {
2754− pr_warn("Could't init IB address resolution\n");
2754+ pr_warn("Couldn't init IB address resolution\n");
27552755 goto err_ibnl;
27562756 }
27572757
drivers/infiniband/core/rw.c+0−1
@@ -510,7 +510,6 @@ struct ib_send_wr *rdma_rw_ctx_wrs(struct rdma_rw_ctx *ctx, struct ib_qp *qp, · 509 unmodified lines
510510 switch (ctx->type) {
511511 case RDMA_RW_SIG_MR:
512512 case RDMA_RW_MR:
513− /* fallthrough */
514513 for (i = 0; i < ctx->nr_ops; i++) {
515514 rdma_rw_update_lkey(&ctx->reg[i],
516515 ctx->reg[i].wr.wr.opcode !=
drivers/infiniband/core/ucma.c+2−2
@@ -794,7 +794,7 @@ static void ucma_copy_ib_route(struct rdma_ucm_query_route_resp *resp, · 793 unmodified lines
794794 case 2:
795795 ib_copy_path_rec_to_user(&resp->ib_route[1],
796796 &route->path_rec[1]);
797− /* fall through */
797+ fallthrough;
798798 case 1:
799799 ib_copy_path_rec_to_user(&resp->ib_route[0],
800800 &route->path_rec[0]);
@@ -820,7 +820,7 @@ static void ucma_copy_iboe_route(struct rdma_ucm_query_route_resp *resp, · 19 unmodified lines
820820 case 2:
821821 ib_copy_path_rec_to_user(&resp->ib_route[1],
822822 &route->path_rec[1]);
823− /* fall through */
823+ fallthrough;
824824 case 1:
825825 ib_copy_path_rec_to_user(&resp->ib_route[0],
826826 &route->path_rec[0]);
drivers/infiniband/core/uverbs_ioctl.c+2−2
@@ -259,7 +259,7 @@ static int uverbs_process_attr(struct bundle_priv *pbundle, · 258 unmodified lines
259259 return -EOPNOTSUPP;
260260
261261 e->ptr_attr.enum_id = uattr->attr_data.enum_data.elem_id;
262− /* fall through */
262+ fallthrough;
263263 case UVERBS_ATTR_TYPE_PTR_IN:
264264 /* Ensure that any data provided by userspace beyond the known
265265 * struct is zero. Userspace that knows how to use some future
@@ -271,7 +271,7 @@ static int uverbs_process_attr(struct bundle_priv *pbundle, · 5 unmodified lines
271271 !uverbs_is_attr_cleared(uattr, val_spec->u.ptr.len))
272272 return -EOPNOTSUPP;
273273
274− /* fall through */
274+ fallthrough;
275275 case UVERBS_ATTR_TYPE_PTR_OUT:
276276 if (uattr->len < val_spec->u.ptr.min_len ||
277277 (!val_spec->zero_trailing &&
drivers/infiniband/hw/bnxt_re/ib_verbs.c+1−1
@@ -2657,7 +2657,7 @@ int bnxt_re_post_send(struct ib_qp *ib_qp, const struct ib_send_wr *wr, · 2656 unmodified lines
26572657 default:
26582658 break;
26592659 }
2660− /* fall through */
2660+ fallthrough;
26612661 case IB_WR_SEND_WITH_INV:
26622662 rc = bnxt_re_build_send_wqe(qp, wr, &wqe);
26632663 break;
drivers/infiniband/hw/bnxt_re/main.c+2−1
@@ -821,7 +821,8 @@ static int bnxt_re_handle_qp_async_event(struct creq_qp_event *qp_event, · 820 unmodified lines
821821 struct ib_event event;
822822 unsigned int flags;
823823
824− if (qp->qplib_qp.state == CMDQ_MODIFY_QP_NEW_STATE_ERR) {
824+ if (qp->qplib_qp.state == CMDQ_MODIFY_QP_NEW_STATE_ERR &&
825+ rdma_is_kernel_res(&qp->ib_qp.res)) {
825826 flags = bnxt_re_lock_cqs(qp);
826827 bnxt_qplib_add_flush_qp(&qp->qplib_qp);
827828 bnxt_re_unlock_cqs(qp, flags);
drivers/infiniband/hw/bnxt_re/qplib_fp.c+1−1
@@ -1779,7 +1779,7 @@ int bnxt_qplib_post_send(struct bnxt_qplib_qp *qp, · 1778 unmodified lines
17791779
17801780 break;
17811781 }
1782− /* fall thru */
1782+ fallthrough;
17831783 case BNXT_QPLIB_SWQE_TYPE_SEND_WITH_IMM:
17841784 case BNXT_QPLIB_SWQE_TYPE_SEND_WITH_INV:
17851785 {
drivers/infiniband/hw/cxgb4/cm.c+2−2
@@ -2885,7 +2885,7 @@ static int peer_abort(struct c4iw_dev *dev, struct sk_buff *skb) · 2884 unmodified lines
28852885 case MORIBUND:
28862886 case CLOSING:
28872887 stop_ep_timer(ep);
2888− /*FALLTHROUGH*/
2888+ fallthrough;
28892889 case FPDU_MODE:
28902890 if (ep->com.qp && ep->com.qp->srq) {
28912891 srqidx = ABORT_RSS_SRQIDX_G(
@@ -3759,7 +3759,7 @@ static void active_ofld_conn_reply(struct c4iw_dev *dev, struct sk_buff *skb, · 867 unmodified lines
37593759 send_fw_act_open_req(ep, atid);
37603760 return;
37613761 }
3762− /* fall through */
3762+ fallthrough;
37633763 case FW_EADDRINUSE:
37643764 set_bit(ACT_RETRY_INUSE, &ep->com.history);
37653765 if (ep->retry_count++ < ACT_OPEN_RETRY_COUNT) {
drivers/infiniband/hw/cxgb4/qp.c+1−1
@@ -1165,7 +1165,7 @@ int c4iw_post_send(struct ib_qp *ibqp, const struct ib_send_wr *wr, · 1164 unmodified lines
11651165 break;
11661166 }
11671167 fw_flags |= FW_RI_RDMA_WRITE_WITH_IMMEDIATE;
1168− /*FALLTHROUGH*/
1168+ fallthrough;
11691169 case IB_WR_RDMA_WRITE:
11701170 fw_opcode = FW_RI_RDMA_WRITE_WR;
11711171 swsqe->opcode = FW_RI_RDMA_WRITE;
drivers/infiniband/hw/hfi1/pio_copy.c+0−1
@@ -209,7 +209,6 @@ static inline void jcopy(u8 *dest, const u8 *src, u32 n) · 208 unmodified lines
209209 fallthrough;
210210 case 1:
211211 *dest++ = *src++;
212− /* fall through */
213212 }
214213 }
215214
drivers/infiniband/hw/hfi1/tid_rdma.c+1−0
@@ -3215,6 +3215,7 @@ bool hfi1_tid_rdma_wqe_interlock(struct rvt_qp *qp, struct rvt_swqe *wqe) · 3214 unmodified lines
32153215 case IB_WR_ATOMIC_CMP_AND_SWP:
32163216 case IB_WR_ATOMIC_FETCH_AND_ADD:
32173217 case IB_WR_RDMA_WRITE:
3218+ case IB_WR_RDMA_WRITE_WITH_IMM:
32183219 switch (prev->wr.opcode) {
32193220 case IB_WR_TID_RDMA_WRITE:
32203221 req = wqe_to_tid_req(prev);
drivers/infiniband/hw/hns/hns_roce_device.h+0−2
@@ -65,8 +65,6 @@ · 64 unmodified lines
6565 #define HNS_ROCE_CQE_WCMD_EMPTY_BIT 0x2
6666 #define HNS_ROCE_MIN_CQE_CNT 16
6767
68−#define HNS_ROCE_RESERVED_SGE 1
69−
7068 #define HNS_ROCE_MAX_IRQ_NUM 128
7169
7270 #define HNS_ROCE_SGE_IN_WQE 2
drivers/infiniband/hw/hns/hns_roce_hw_v1.c+1−1
@@ -535,7 +535,7 @@ static void hns_roce_set_sdb_ext(struct hns_roce_dev *hr_dev, u32 ext_sdb_alept, · 534 unmodified lines
535535 roce_write(hr_dev, ROCEE_EXT_DB_SQ_H_REG, val);
536536
537537 dev_dbg(dev, "ext SDB depth: 0x%x\n", db->ext_db->esdb_dep);
538− dev_dbg(dev, "ext SDB threshold: epmty: 0x%x, ful: 0x%x\n",
538+ dev_dbg(dev, "ext SDB threshold: empty: 0x%x, ful: 0x%x\n",
539539 ext_sdb_alept, ext_sdb_alful);
540540 }
541541
drivers/infiniband/hw/hns/hns_roce_hw_v2.c+4−5
@@ -633,7 +633,7 @@ static int hns_roce_v2_post_recv(struct ib_qp *ibqp, · 632 unmodified lines
633633
634634 wqe_idx = (hr_qp->rq.head + nreq) & (hr_qp->rq.wqe_cnt - 1);
635635
636− if (unlikely(wr->num_sge >= hr_qp->rq.max_gs)) {
636+ if (unlikely(wr->num_sge > hr_qp->rq.max_gs)) {
637637 ibdev_err(ibdev, "rq:num_sge=%d >= qp->sq.max_gs=%d\n",
638638 wr->num_sge, hr_qp->rq.max_gs);
639639 ret = -EINVAL;
@@ -653,7 +653,6 @@ static int hns_roce_v2_post_recv(struct ib_qp *ibqp, · 13 unmodified lines
653653 if (wr->num_sge < hr_qp->rq.max_gs) {
654654 dseg->lkey = cpu_to_le32(HNS_ROCE_INVALID_LKEY);
655655 dseg->addr = 0;
656− dseg->len = cpu_to_le32(HNS_ROCE_INVALID_SGE_LENGTH);
657656 }
658657
659658 /* rq support inline data */
@@ -787,8 +786,8 @@ static int hns_roce_v2_post_srq_recv(struct ib_srq *ibsrq, · 127 unmodified lines
787786 }
788787
789788 if (wr->num_sge < srq->max_gs) {
790− dseg[i].len = cpu_to_le32(HNS_ROCE_INVALID_SGE_LENGTH);
791− dseg[i].lkey = cpu_to_le32(HNS_ROCE_INVALID_LKEY);
789+ dseg[i].len = 0;
790+ dseg[i].lkey = cpu_to_le32(0x100);
792791 dseg[i].addr = 0;
793792 }
794793
@@ -5070,7 +5069,7 @@ static int hns_roce_v2_query_srq(struct ib_srq *ibsrq, struct ib_srq_attr *attr) · 4275 unmodified lines
50705069
50715070 attr->srq_limit = limit_wl;
50725071 attr->max_wr = srq->wqe_cnt - 1;
5073− attr->max_sge = srq->max_gs - HNS_ROCE_RESERVED_SGE;
5072+ attr->max_sge = srq->max_gs;
50745073
50755074 out:
50765075 hns_roce_free_cmd_mailbox(hr_dev, mailbox);
drivers/infiniband/hw/hns/hns_roce_hw_v2.h+1−3
@@ -92,9 +92,7 @@ · 91 unmodified lines
9292 #define HNS_ROCE_V2_CQC_TIMER_ENTRY_SZ PAGE_SIZE
9393 #define HNS_ROCE_V2_PAGE_SIZE_SUPPORTED 0xFFFFF000
9494 #define HNS_ROCE_V2_MAX_INNER_MTPT_NUM 2
95−#define HNS_ROCE_INVALID_LKEY 0x0
96−#define HNS_ROCE_INVALID_SGE_LENGTH 0x80000000
97−
95+#define HNS_ROCE_INVALID_LKEY 0x100
9896 #define HNS_ROCE_CMQ_TX_TIMEOUT 30000
9997 #define HNS_ROCE_V2_UC_RC_SGE_NUM_IN_WQE 2
10098 #define HNS_ROCE_V2_RSV_QPS 8
drivers/infiniband/hw/hns/hns_roce_qp.c+2−3
@@ -386,8 +386,7 @@ static int set_rq_size(struct hns_roce_dev *hr_dev, struct ib_qp_cap *cap, · 385 unmodified lines
386386 return -EINVAL;
387387 }
388388
389− hr_qp->rq.max_gs = roundup_pow_of_two(max(1U, cap->max_recv_sge) +
390− HNS_ROCE_RESERVED_SGE);
389+ hr_qp->rq.max_gs = roundup_pow_of_two(max(1U, cap->max_recv_sge));
391390
392391 if (hr_dev->caps.max_rq_sg <= HNS_ROCE_SGE_IN_WQE)
393392 hr_qp->rq.wqe_shift = ilog2(hr_dev->caps.max_rq_desc_sz);
@@ -402,7 +401,7 @@ static int set_rq_size(struct hns_roce_dev *hr_dev, struct ib_qp_cap *cap, · 8 unmodified lines
402401 hr_qp->rq_inl_buf.wqe_cnt = 0;
403402
404403 cap->max_recv_wr = cnt;
405− cap->max_recv_sge = hr_qp->rq.max_gs - HNS_ROCE_RESERVED_SGE;
404+ cap->max_recv_sge = hr_qp->rq.max_gs;
406405
407406 return 0;
408407 }
drivers/infiniband/hw/hns/hns_roce_srq.c+1−1
@@ -297,7 +297,7 @@ int hns_roce_create_srq(struct ib_srq *ib_srq, · 296 unmodified lines
297297 spin_lock_init(&srq->lock);
298298
299299 srq->wqe_cnt = roundup_pow_of_two(init_attr->attr.max_wr + 1);
300− srq->max_gs = init_attr->attr.max_sge + HNS_ROCE_RESERVED_SGE;
300+ srq->max_gs = init_attr->attr.max_sge;
301301
302302 if (udata) {
303303 ret = ib_copy_from_udata(&ucmd, udata, sizeof(ucmd));
drivers/infiniband/hw/i40iw/i40iw_cm.c+1−1
@@ -2443,7 +2443,7 @@ static void i40iw_handle_rst_pkt(struct i40iw_cm_node *cm_node, · 2442 unmodified lines
24432443 case I40IW_CM_STATE_FIN_WAIT1:
24442444 case I40IW_CM_STATE_LAST_ACK:
24452445 cm_node->cm_id->rem_ref(cm_node->cm_id);
2446− /* fall through */
2446+ fallthrough;
24472447 case I40IW_CM_STATE_TIME_WAIT:
24482448 cm_node->state = I40IW_CM_STATE_CLOSED;
24492449 i40iw_rem_ref_cm_node(cm_node);
drivers/infiniband/hw/i40iw/i40iw_ctrl.c+2−3
@@ -1964,7 +1964,6 @@ static enum i40iw_status_code i40iw_sc_get_next_aeqe(struct i40iw_sc_aeq *aeq, · 1963 unmodified lines
19641964 info->out_rdrsp = true;
19651965 break;
19661966 case I40IW_AE_SOURCE_RSVD:
1967− /* fallthrough */
19681967 default:
19691968 break;
19701969 }
@@ -3762,14 +3761,14 @@ static enum i40iw_status_code cqp_sds_wqe_fill(struct i40iw_sc_cqp *cqp, · 1791 unmodified lines
37623761 LS_64(1, I40IW_CQPSQ_UPESD_ENTRY_VALID)));
37633762
37643763 set_64bit_val(wqe, 56, info->entry[2].data);
3765− /* fallthrough */
3764+ fallthrough;
37663765 case 2:
37673766 set_64bit_val(wqe, 32,
37683767 (LS_64(info->entry[1].cmd, I40IW_CQPSQ_UPESD_SDCMD) |
37693768 LS_64(1, I40IW_CQPSQ_UPESD_ENTRY_VALID)));
37703769
37713770 set_64bit_val(wqe, 40, info->entry[1].data);
3772− /* fallthrough */
3771+ fallthrough;
37733772 case 1:
37743773 set_64bit_val(wqe, 0,
37753774 LS_64(info->entry[0].cmd, I40IW_CQPSQ_UPESD_SDCMD));
drivers/infiniband/hw/i40iw/i40iw_hw.c+1−2
@@ -353,7 +353,6 @@ void i40iw_process_aeq(struct i40iw_device *iwdev) · 352 unmodified lines
353353 i40iw_cm_disconn(iwqp);
354354 break;
355355 case I40IW_AE_BAD_CLOSE:
356− /* fall through */
357356 case I40IW_AE_RESET_SENT:
358357 i40iw_next_iw_state(iwqp, I40IW_QP_STATE_ERROR, 1, 0, 0);
359358 i40iw_cm_disconn(iwqp);
@@ -413,7 +412,7 @@ void i40iw_process_aeq(struct i40iw_device *iwdev) · 53 unmodified lines
413412 case I40IW_AE_UDA_XMIT_DGRAM_TOO_LONG:
414413 case I40IW_AE_UDA_XMIT_DGRAM_TOO_SHORT:
415414 ctx_info->err_rq_idx_valid = false;
416− /* fall through */
415+ fallthrough;
417416 default:
418417 if (!info->sq && ctx_info->err_rq_idx_valid) {
419418 ctx_info->err_rq_idx = info->wqe_idx;
drivers/infiniband/hw/i40iw/i40iw_main.c+10−12
@@ -1489,36 +1489,35 @@ static void i40iw_deinit_device(struct i40iw_device *iwdev) · 1488 unmodified lines
14891489 iwdev->iw_status = 0;
14901490 i40iw_port_ibevent(iwdev);
14911491 i40iw_destroy_rdma_device(iwdev->iwibdev);
1492− /* fallthrough */
1492+ fallthrough;
14931493 case IP_ADDR_REGISTERED:
14941494 if (!iwdev->reset)
14951495 i40iw_del_macip_entry(iwdev, (u8)iwdev->mac_ip_table_idx);
1496− /* fallthrough */
1497− /* fallthrough */
1496+ fallthrough;
14981497 case PBLE_CHUNK_MEM:
14991498 i40iw_destroy_pble_pool(dev, iwdev->pble_rsrc);
1500− /* fallthrough */
1499+ fallthrough;
15011500 case CEQ_CREATED:
15021501 i40iw_dele_ceqs(iwdev);
1503− /* fallthrough */
1502+ fallthrough;
15041503 case AEQ_CREATED:
15051504 i40iw_destroy_aeq(iwdev);
1506− /* fallthrough */
1505+ fallthrough;
15071506 case IEQ_CREATED:
15081507 i40iw_puda_dele_resources(&iwdev->vsi, I40IW_PUDA_RSRC_TYPE_IEQ, iwdev->reset);
1509− /* fallthrough */
1508+ fallthrough;
15101509 case ILQ_CREATED:
15111510 i40iw_puda_dele_resources(&iwdev->vsi, I40IW_PUDA_RSRC_TYPE_ILQ, iwdev->reset);
1512− /* fallthrough */
1511+ fallthrough;
15131512 case CCQ_CREATED:
15141513 i40iw_destroy_ccq(iwdev);
1515− /* fallthrough */
1514+ fallthrough;
15161515 case HMC_OBJS_CREATED:
15171516 i40iw_del_hmc_objects(dev, dev->hmc_info, true, iwdev->reset);
1518− /* fallthrough */
1517+ fallthrough;
15191518 case CQP_CREATED:
15201519 i40iw_destroy_cqp(iwdev, true);
1521− /* fallthrough */
1520+ fallthrough;
15221521 case INITIAL_STATE:
15231522 i40iw_cleanup_cm_core(&iwdev->cm_core);
15241523 if (iwdev->vsi.pestat) {
@@ -1528,7 +1527,6 @@ static void i40iw_deinit_device(struct i40iw_device *iwdev) · 3 unmodified lines
15281527 i40iw_del_init_mem(iwdev);
15291528 break;
15301529 case INVALID_STATE:
1531− /* fallthrough */
15321530 default:
15331531 i40iw_pr_err("bad init_state = %d\n", iwdev->init_state);
15341532 break;
drivers/infiniband/hw/i40iw/i40iw_puda.c+2−2
@@ -814,13 +814,13 @@ void i40iw_puda_dele_resources(struct i40iw_sc_vsi *vsi, · 813 unmodified lines
814814 switch (rsrc->completion) {
815815 case PUDA_HASH_CRC_COMPLETE:
816816 i40iw_free_hash_desc(rsrc->hash_desc);
817− /* fall through */
817+ fallthrough;
818818 case PUDA_QP_CREATED:
819819 if (!reset)
820820 i40iw_puda_free_qp(rsrc);
821821
822822 i40iw_free_dma_mem(dev->hw, &rsrc->qpmem);
823− /* fallthrough */
823+ fallthrough;
824824 case PUDA_CQ_CREATED:
825825 if (!reset)
826826 i40iw_puda_free_cq(rsrc);
drivers/infiniband/hw/i40iw/i40iw_utils.c+3−5
@@ -190,9 +190,8 @@ int i40iw_inetaddr_event(struct notifier_block *notifier, · 189 unmodified lines
190190 switch (event) {
191191 case NETDEV_DOWN:
192192 action = I40IW_ARP_DELETE;
193− /* Fall through */
193+ fallthrough;
194194 case NETDEV_UP:
195− /* Fall through */
196195 case NETDEV_CHANGEADDR:
197196
198197 /* Just skip if no need to handle ARP cache */
@@ -247,9 +246,8 @@ int i40iw_inet6addr_event(struct notifier_block *notifier, · 48 unmodified lines
247246 switch (event) {
248247 case NETDEV_DOWN:
249248 action = I40IW_ARP_DELETE;
250− /* Fall through */
249+ fallthrough;
251250 case NETDEV_UP:
252− /* Fall through */
253251 case NETDEV_CHANGEADDR:
254252 i40iw_manage_arp_cache(iwdev,
255253 netdev->dev_addr,
@@ -344,7 +342,7 @@ int i40iw_netdevice_event(struct notifier_block *notifier, · 88 unmodified lines
344342 switch (event) {
345343 case NETDEV_DOWN:
346344 iwdev->iw_status = 0;
347− /* Fall through */
345+ fallthrough;
348346 case NETDEV_UP:
349347 i40iw_port_ibevent(iwdev);
350348 break;
drivers/infiniband/hw/i40iw/i40iw_verbs.c+2−3
@@ -810,7 +810,7 @@ void i40iw_hw_modify_qp(struct i40iw_device *iwdev, struct i40iw_qp *iwqp, · 809 unmodified lines
810810 case I40IW_QP_STATE_RTS:
811811 if (iwqp->iwarp_state == I40IW_QP_STATE_IDLE)
812812 i40iw_send_reset(iwqp->cm_node);
813− /* fall through */
813+ fallthrough;
814814 case I40IW_QP_STATE_IDLE:
815815 case I40IW_QP_STATE_TERMINATE:
816816 case I40IW_QP_STATE_CLOSING:
@@ -2144,7 +2144,6 @@ static int i40iw_post_send(struct ib_qp *ibqp, · 1327 unmodified lines
21442144
21452145 switch (ib_wr->opcode) {
21462146 case IB_WR_SEND:
2147− /* fall-through */
21482147 case IB_WR_SEND_WITH_INV:
21492148 if (ib_wr->opcode == IB_WR_SEND) {
21502149 if (ib_wr->send_flags & IB_SEND_SOLICITED)
@@ -2201,7 +2200,7 @@ static int i40iw_post_send(struct ib_qp *ibqp, · 50 unmodified lines
22012200 break;
22022201 case IB_WR_RDMA_READ_WITH_INV:
22032202 inv_stag = true;
2204− /* fall-through*/
2203+ fallthrough;
22052204 case IB_WR_RDMA_READ:
22062205 if (ib_wr->num_sge > I40IW_MAX_SGE_RD) {
22072206 err = -EINVAL;
drivers/infiniband/hw/mlx4/cq.c+2−2
@@ -765,13 +765,13 @@ repoll: · 764 unmodified lines
765765 switch (cqe->owner_sr_opcode & MLX4_CQE_OPCODE_MASK) {
766766 case MLX4_OPCODE_RDMA_WRITE_IMM:
767767 wc->wc_flags |= IB_WC_WITH_IMM;
768− /* fall through */
768+ fallthrough;
769769 case MLX4_OPCODE_RDMA_WRITE:
770770 wc->opcode = IB_WC_RDMA_WRITE;
771771 break;
772772 case MLX4_OPCODE_SEND_IMM:
773773 wc->wc_flags |= IB_WC_WITH_IMM;
774− /* fall through */
774+ fallthrough;
775775 case MLX4_OPCODE_SEND:
776776 case MLX4_OPCODE_SEND_INVAL:
777777 wc->opcode = IB_WC_SEND;
drivers/infiniband/hw/mlx4/mcg.c+1−1
@@ -944,7 +944,7 @@ int mlx4_ib_mcg_multiplex_handler(struct ib_device *ibdev, int port, · 943 unmodified lines
944944 switch (sa_mad->mad_hdr.method) {
945945 case IB_MGMT_METHOD_SET:
946946 may_create = 1;
947− /* fall through */
947+ fallthrough;
948948 case IB_SA_METHOD_DELETE:
949949 req = kzalloc(sizeof *req, GFP_KERNEL);
950950 if (!req)
drivers/infiniband/hw/mlx4/qp.c+3−3
@@ -1578,12 +1578,12 @@ static struct ib_qp *_mlx4_ib_create_qp(struct ib_pd *pd, · 1577 unmodified lines
15781578 pd = to_mxrcd(init_attr->xrcd)->pd;
15791579 xrcdn = to_mxrcd(init_attr->xrcd)->xrcdn;
15801580 init_attr->send_cq = to_mxrcd(init_attr->xrcd)->cq;
1581− /* fall through */
1581+ fallthrough;
15821582 case IB_QPT_XRC_INI:
15831583 if (!(to_mdev(pd->device)->dev->caps.flags & MLX4_DEV_CAP_FLAG_XRC))
15841584 return ERR_PTR(-ENOSYS);
15851585 init_attr->recv_cq = init_attr->send_cq;
1586− /* fall through */
1586+ fallthrough;
15871587 case IB_QPT_RC:
15881588 case IB_QPT_UC:
15891589 case IB_QPT_RAW_PACKET:
@@ -1592,7 +1592,7 @@ static struct ib_qp *_mlx4_ib_create_qp(struct ib_pd *pd, · 2 unmodified lines
15921592 return ERR_PTR(-ENOMEM);
15931593 qp->pri.vid = 0xFFFF;
15941594 qp->alt.vid = 0xFFFF;
1595− /* fall through */
1595+ fallthrough;
15961596 case IB_QPT_UD:
15971597 {
15981598 err = create_qp_common(pd, init_attr, udata, 0, &qp);
drivers/infiniband/hw/mlx5/cq.c+2−2
@@ -121,13 +121,13 @@ static void handle_good_req(struct ib_wc *wc, struct mlx5_cqe64 *cqe, · 120 unmodified lines
121121 switch (be32_to_cpu(cqe->sop_drop_qpn) >> 24) {
122122 case MLX5_OPCODE_RDMA_WRITE_IMM:
123123 wc->wc_flags |= IB_WC_WITH_IMM;
124− /* fall through */
124+ fallthrough;
125125 case MLX5_OPCODE_RDMA_WRITE:
126126 wc->opcode = IB_WC_RDMA_WRITE;
127127 break;
128128 case MLX5_OPCODE_SEND_IMM:
129129 wc->wc_flags |= IB_WC_WITH_IMM;
130− /* fall through */
130+ fallthrough;
131131 case MLX5_OPCODE_SEND:
132132 case MLX5_OPCODE_SEND_INVAL:
133133 wc->opcode = IB_WC_SEND;
drivers/infiniband/hw/mlx5/mad.c+1−2
@@ -250,9 +250,8 @@ int mlx5_ib_process_mad(struct ib_device *ibdev, int mad_flags, u8 port_num, · 249 unmodified lines
250250 if (MLX5_CAP_GEN(dev->mdev, vport_counters) &&
251251 method == IB_MGMT_METHOD_GET)
252252 return process_pma_cmd(dev, port_num, in, out);
253− /* fallthrough */
253+ fallthrough;
254254 case MLX5_IB_VENDOR_CLASS1:
255− /* fallthrough */
256255 case MLX5_IB_VENDOR_CLASS2:
257256 case IB_MGMT_CLASS_CONG_MGMT: {
258257 if (method != IB_MGMT_METHOD_GET &&
drivers/infiniband/hw/mlx5/main.c+1−1
@@ -2872,7 +2872,7 @@ static void mlx5_ib_handle_event(struct work_struct *_work) · 2871 unmodified lines
28722872 break;
28732873 case MLX5_EVENT_TYPE_GENERAL_EVENT:
28742874 handle_general_event(ibdev, work->param, &ibev);
2875− /* fall through */
2875+ fallthrough;
28762876 default:
28772877 goto out;
28782878 }
drivers/infiniband/hw/mlx5/qp.c+2−2
@@ -416,7 +416,7 @@ static int sq_overhead(struct ib_qp_init_attr *attr) · 415 unmodified lines
416416 switch (attr->qp_type) {
417417 case IB_QPT_XRC_INI:
418418 size += sizeof(struct mlx5_wqe_xrc_seg);
419− /* fall through */
419+ fallthrough;
420420 case IB_QPT_RC:
421421 size += sizeof(struct mlx5_wqe_ctrl_seg) +
422422 max(sizeof(struct mlx5_wqe_atomic_seg) +
@@ -441,7 +441,7 @@ static int sq_overhead(struct ib_qp_init_attr *attr) · 18 unmodified lines
441441 if (attr->create_flags & IB_QP_CREATE_IPOIB_UD_LSO)
442442 size += sizeof(struct mlx5_wqe_eth_pad) +
443443 sizeof(struct mlx5_wqe_eth_seg);
444− /* fall through */
444+ fallthrough;
445445 case IB_QPT_SMI:
446446 case MLX5_IB_QPT_HW_GSI:
447447 size += sizeof(struct mlx5_wqe_ctrl_seg) +
drivers/infiniband/hw/mthca/mthca_av.c+1−1
@@ -115,7 +115,7 @@ static u8 ib_rate_to_memfree(u8 req_rate, u8 cur_rate) · 114 unmodified lines
115115 switch ((cur_rate - 1) / req_rate) {
116116 case 0: return MTHCA_RATE_MEMFREE_FULL;
117117 case 1: return MTHCA_RATE_MEMFREE_HALF;
118− case 2: /* fall through */
118+ case 2:
119119 case 3: return MTHCA_RATE_MEMFREE_QUARTER;
120120 default: return MTHCA_RATE_MEMFREE_EIGHTH;
121121 }
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c+2−2
@@ -2134,7 +2134,7 @@ int ocrdma_post_send(struct ib_qp *ibqp, const struct ib_send_wr *wr, · 2133 unmodified lines
21342134 case IB_WR_SEND_WITH_IMM:
21352135 hdr->cw |= (OCRDMA_FLAG_IMM << OCRDMA_WQE_FLAGS_SHIFT);
21362136 hdr->immdt = ntohl(wr->ex.imm_data);
2137− /* fall through */
2137+ fallthrough;
21382138 case IB_WR_SEND:
21392139 hdr->cw |= (OCRDMA_SEND << OCRDMA_WQE_OPCODE_SHIFT);
21402140 ocrdma_build_send(qp, hdr, wr);
@@ -2148,7 +2148,7 @@ int ocrdma_post_send(struct ib_qp *ibqp, const struct ib_send_wr *wr, · 7 unmodified lines
21482148 case IB_WR_RDMA_WRITE_WITH_IMM:
21492149 hdr->cw |= (OCRDMA_FLAG_IMM << OCRDMA_WQE_FLAGS_SHIFT);
21502150 hdr->immdt = ntohl(wr->ex.imm_data);
2151− /* fall through */
2151+ fallthrough;
21522152 case IB_WR_RDMA_WRITE:
21532153 hdr->cw |= (OCRDMA_WRITE << OCRDMA_WQE_OPCODE_SHIFT);
21542154 status = ocrdma_build_write(qp, hdr, wr);
drivers/infiniband/hw/qedr/verbs.c+1−1
@@ -3528,7 +3528,7 @@ static int __qedr_post_send(struct ib_qp *ibqp, const struct ib_send_wr *wr, · 3527 unmodified lines
35283528 break;
35293529 case IB_WR_RDMA_READ_WITH_INV:
35303530 SET_FIELD2(wqe->flags, RDMA_SQ_RDMA_WQE_1ST_READ_INV_FLG, 1);
3531− /* fallthrough -- same is identical to RDMA READ */
3531+ fallthrough; /* same is identical to RDMA READ */
35323532
35333533 case IB_WR_RDMA_READ:
35343534 wqe->req_type = RDMA_SQ_REQ_TYPE_RDMA_RD;
drivers/infiniband/hw/qib/qib_iba6120.c+2−2
@@ -2973,11 +2973,11 @@ static u32 qib_6120_iblink_state(u64 ibcs) · 2972 unmodified lines
29732973 state = IB_PORT_ARMED;
29742974 break;
29752975 case IB_6120_L_STATE_ACTIVE:
2976− /* fall through */
29772976 case IB_6120_L_STATE_ACT_DEFER:
29782977 state = IB_PORT_ACTIVE;
29792978 break;
2980− default: /* fall through */
2979+ default:
2980+ fallthrough;
29812981 case IB_6120_L_STATE_DOWN:
29822982 state = IB_PORT_DOWN;
29832983 break;
drivers/infiniband/hw/qib/qib_iba7220.c+2−2
@@ -3586,11 +3586,11 @@ static u32 qib_7220_iblink_state(u64 ibcs) · 3585 unmodified lines
35863586 state = IB_PORT_ARMED;
35873587 break;
35883588 case IB_7220_L_STATE_ACTIVE:
3589− /* fall through */
35903589 case IB_7220_L_STATE_ACT_DEFER:
35913590 state = IB_PORT_ACTIVE;
35923591 break;
3593− default: /* fall through */
3592+ default:
3593+ fallthrough;
35943594 case IB_7220_L_STATE_DOWN:
35953595 state = IB_PORT_DOWN;
35963596 break;
drivers/infiniband/hw/qib/qib_iba7322.c+3−3
@@ -5508,11 +5508,11 @@ static u32 qib_7322_iblink_state(u64 ibcs) · 5507 unmodified lines
55085508 state = IB_PORT_ARMED;
55095509 break;
55105510 case IB_7322_L_STATE_ACTIVE:
5511− /* fall through */
55125511 case IB_7322_L_STATE_ACT_DEFER:
55135512 state = IB_PORT_ACTIVE;
55145513 break;
5515− default: /* fall through */
5514+ default:
5515+ fallthrough;
55165516 case IB_7322_L_STATE_DOWN:
55175517 state = IB_PORT_DOWN;
55185518 break;
@@ -6533,7 +6533,7 @@ static int qib_init_7322_variables(struct qib_devdata *dd) · 1014 unmodified lines
65336533 "Invalid num_vls %u, using 4 VLs\n",
65346534 qib_num_cfg_vls);
65356535 qib_num_cfg_vls = 4;
6536− /* fall through */
6536+ fallthrough;
65376537 case 4:
65386538 ppd->vls_supported = IB_VL_VL0_3;
65396539 break;
drivers/infiniband/hw/qib/qib_mad.c+6−6
@@ -433,7 +433,7 @@ static int check_mkey(struct qib_ibport *ibp, struct ib_smp *smp, int mad_flags) · 432 unmodified lines
433433 /* Bad mkey not a violation below level 2 */
434434 if (ibp->rvp.mkeyprot < 2)
435435 break;
436− /* fall through */
436+ fallthrough;
437437 case IB_MGMT_METHOD_SET:
438438 case IB_MGMT_METHOD_TRAP_REPRESS:
439439 if (ibp->rvp.mkey_violations != 0xFFFF)
@@ -828,7 +828,7 @@ static int subn_set_portinfo(struct ib_smp *smp, struct ib_device *ibdev, · 388 unmodified lines
828828 case IB_PORT_NOP:
829829 if (lstate == 0)
830830 break;
831− /* FALLTHROUGH */
831+ fallthrough;
832832 case IB_PORT_DOWN:
833833 if (lstate == 0)
834834 lstate = QIB_IB_LINKDOWN_ONLY;
@@ -1928,7 +1928,7 @@ static int process_subn(struct ib_device *ibdev, int mad_flags, · 1093 unmodified lines
19281928 ret = IB_MAD_RESULT_SUCCESS;
19291929 goto bail;
19301930 }
1931− /* FALLTHROUGH */
1931+ fallthrough;
19321932 default:
19331933 smp->status |= IB_SMP_UNSUP_METH_ATTR;
19341934 ret = reply(smp);
@@ -1962,7 +1962,7 @@ static int process_subn(struct ib_device *ibdev, int mad_flags, · 27 unmodified lines
19621962 ret = IB_MAD_RESULT_SUCCESS;
19631963 goto bail;
19641964 }
1965− /* FALLTHROUGH */
1965+ fallthrough;
19661966 default:
19671967 smp->status |= IB_SMP_UNSUP_METH_ATTR;
19681968 ret = reply(smp);
@@ -2322,7 +2322,7 @@ static int process_cc(struct ib_device *ibdev, int mad_flags, · 353 unmodified lines
23222322 ret = cc_get_congestion_control_table(ccp, ibdev, port);
23232323 goto bail;
23242324
2325− /* FALLTHROUGH */
2325+ fallthrough;
23262326 default:
23272327 ccp->status |= IB_SMP_UNSUP_METH_ATTR;
23282328 ret = reply((struct ib_smp *) ccp);
@@ -2339,7 +2339,7 @@ static int process_cc(struct ib_device *ibdev, int mad_flags, · 10 unmodified lines
23392339 ret = cc_set_congestion_control_table(ccp, ibdev, port);
23402340 goto bail;
23412341
2342− /* FALLTHROUGH */
2342+ fallthrough;
23432343 default:
23442344 ccp->status |= IB_SMP_UNSUP_METH_ATTR;
23452345 ret = reply((struct ib_smp *) ccp);
drivers/infiniband/hw/qib/qib_rc.c+9−9
@@ -83,7 +83,7 @@ static int qib_make_rc_ack(struct qib_ibdev *dev, struct rvt_qp *qp, · 82 unmodified lines
8383 rvt_put_mr(e->rdma_sge.mr);
8484 e->rdma_sge.mr = NULL;
8585 }
86− /* FALLTHROUGH */
86+ fallthrough;
8787 case OP(ATOMIC_ACKNOWLEDGE):
8888 /*
8989 * We can increment the tail pointer now that the last
@@ -92,7 +92,7 @@ static int qib_make_rc_ack(struct qib_ibdev *dev, struct rvt_qp *qp, · 2 unmodified lines
9292 */
9393 if (++qp->s_tail_ack_queue > QIB_MAX_RDMA_ATOMIC)
9494 qp->s_tail_ack_queue = 0;
95− /* FALLTHROUGH */
95+ fallthrough;
9696 case OP(SEND_ONLY):
9797 case OP(ACKNOWLEDGE):
9898 /* Check for no next entry in the queue. */
@@ -149,7 +149,7 @@ static int qib_make_rc_ack(struct qib_ibdev *dev, struct rvt_qp *qp, · 50 unmodified lines
149149
150150 case OP(RDMA_READ_RESPONSE_FIRST):
151151 qp->s_ack_state = OP(RDMA_READ_RESPONSE_MIDDLE);
152− /* FALLTHROUGH */
152+ fallthrough;
153153 case OP(RDMA_READ_RESPONSE_MIDDLE):
154154 qp->s_cur_sge = &qp->s_ack_rdma_sge;
155155 qp->s_rdma_mr = qp->s_ack_rdma_sge.sge.mr;
@@ -471,10 +471,10 @@ no_flow_control: · 315 unmodified lines
471471 * See qib_restart_rc().
472472 */
473473 qp->s_len = restart_sge(&qp->s_sge, wqe, qp->s_psn, pmtu);
474− /* FALLTHROUGH */
474+ fallthrough;
475475 case OP(SEND_FIRST):
476476 qp->s_state = OP(SEND_MIDDLE);
477− /* FALLTHROUGH */
477+ fallthrough;
478478 case OP(SEND_MIDDLE):
479479 bth2 = qp->s_psn++ & QIB_PSN_MASK;
480480 ss = &qp->s_sge;
@@ -510,10 +510,10 @@ no_flow_control: · 29 unmodified lines
510510 * See qib_restart_rc().
511511 */
512512 qp->s_len = restart_sge(&qp->s_sge, wqe, qp->s_psn, pmtu);
513− /* FALLTHROUGH */
513+ fallthrough;
514514 case OP(RDMA_WRITE_FIRST):
515515 qp->s_state = OP(RDMA_WRITE_MIDDLE);
516− /* FALLTHROUGH */
516+ fallthrough;
517517 case OP(RDMA_WRITE_MIDDLE):
518518 bth2 = qp->s_psn++ & QIB_PSN_MASK;
519519 ss = &qp->s_sge;
@@ -1807,7 +1807,7 @@ void qib_rc_rcv(struct qib_ctxtdata *rcd, struct ib_header *hdr, · 1287 unmodified lines
18071807 if (!ret)
18081808 goto rnr_nak;
18091809 qp->r_rcv_len = 0;
1810− /* FALLTHROUGH */
1810+ fallthrough;
18111811 case OP(SEND_MIDDLE):
18121812 case OP(RDMA_WRITE_MIDDLE):
18131813 send_middle:
@@ -1839,7 +1839,7 @@ send_middle: · 25 unmodified lines
18391839 qp->r_rcv_len = 0;
18401840 if (opcode == OP(SEND_ONLY))
18411841 goto no_immediate_data;
1842− /* fall through -- for SEND_ONLY_WITH_IMMEDIATE */
1842+ fallthrough; /* for SEND_ONLY_WITH_IMMEDIATE */
18431843 case OP(SEND_LAST_WITH_IMMEDIATE):
18441844 send_last_imm:
18451845 wc.ex.imm_data = ohdr->u.imm_data;
drivers/infiniband/hw/qib/qib_sdma.c+1−1
@@ -763,7 +763,7 @@ void __qib_sdma_process_event(struct qib_pportdata *ppd, · 762 unmodified lines
763763 * bringing the link up with traffic active on
764764 * 7220, e.g. */
765765 ss->go_s99_running = 1;
766− /* fall through -- and start dma engine */
766+ fallthrough; /* and start dma engine */
767767 case qib_sdma_event_e10_go_hw_start:
768768 /* This reference means the state machine is started */
769769 sdma_get(&ppd->sdma_state);
drivers/infiniband/hw/qib/qib_uc.c+4−4
@@ -161,7 +161,7 @@ int qib_make_uc_req(struct rvt_qp *qp, unsigned long *flags) · 160 unmodified lines
161161
162162 case OP(SEND_FIRST):
163163 qp->s_state = OP(SEND_MIDDLE);
164− /* FALLTHROUGH */
164+ fallthrough;
165165 case OP(SEND_MIDDLE):
166166 len = qp->s_len;
167167 if (len > pmtu) {
@@ -185,7 +185,7 @@ int qib_make_uc_req(struct rvt_qp *qp, unsigned long *flags) · 17 unmodified lines
185185
186186 case OP(RDMA_WRITE_FIRST):
187187 qp->s_state = OP(RDMA_WRITE_MIDDLE);
188− /* FALLTHROUGH */
188+ fallthrough;
189189 case OP(RDMA_WRITE_MIDDLE):
190190 len = qp->s_len;
191191 if (len > pmtu) {
@@ -351,7 +351,7 @@ send_first: · 159 unmodified lines
351351 goto no_immediate_data;
352352 else if (opcode == OP(SEND_ONLY_WITH_IMMEDIATE))
353353 goto send_last_imm;
354− /* FALLTHROUGH */
354+ fallthrough;
355355 case OP(SEND_MIDDLE):
356356 /* Check for invalid length PMTU or posted rwqe len. */
357357 if (unlikely(tlen != (hdrsize + pmtu + 4)))
@@ -440,7 +440,7 @@ rdma_first: · 82 unmodified lines
440440 wc.ex.imm_data = ohdr->u.rc.imm_data;
441441 goto rdma_last_imm;
442442 }
443− /* FALLTHROUGH */
443+ fallthrough;
444444 case OP(RDMA_WRITE_MIDDLE):
445445 /* Check for invalid length PMTU or posted rwqe len. */
446446 if (unlikely(tlen != (hdrsize + pmtu + 4)))
drivers/infiniband/hw/qib/qib_verbs.c+1−1
@@ -237,7 +237,7 @@ static void qib_qp_rcv(struct qib_ctxtdata *rcd, struct ib_header *hdr, · 236 unmodified lines
237237 case IB_QPT_GSI:
238238 if (ib_qib_disable_sma)
239239 break;
240− /* FALLTHROUGH */
240+ fallthrough;
241241 case IB_QPT_UD:
242242 qib_ud_rcv(ibp, hdr, has_grh, data, tlen, qp);
243243 break;
drivers/infiniband/hw/usnic/usnic_ib_main.c+1−1
@@ -120,7 +120,7 @@ static void usnic_ib_qp_grp_modify_active_to_err(struct usnic_ib_dev *us_ibdev) · 119 unmodified lines
120120 IB_QPS_ERR,
121121 NULL);
122122 if (status) {
123− usnic_err("Failed to transistion qp grp %u from %s to %s\n",
123+ usnic_err("Failed to transition qp grp %u from %s to %s\n",
124124 qp_grp->grp_id,
125125 usnic_ib_qp_grp_state_to_string
126126 (cur_state),
drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c+1−1
@@ -238,7 +238,7 @@ struct ib_qp *pvrdma_create_qp(struct ib_pd *pd, · 237 unmodified lines
238238 ret = -EINVAL;
239239 goto err_qp;
240240 }
241− /* fall through */
241+ fallthrough;
242242 case IB_QPT_RC:
243243 case IB_QPT_UD:
244244 qp = kzalloc(sizeof(*qp), GFP_KERNEL);
drivers/infiniband/sw/rdmavt/qp.c+1−1
@@ -1111,7 +1111,7 @@ struct ib_qp *rvt_create_qp(struct ib_pd *ibpd, · 1110 unmodified lines
11111111 if (init_attr->port_num == 0 ||
11121112 init_attr->port_num > ibpd->device->phys_port_cnt)
11131113 return ERR_PTR(-EINVAL);
1114− /* fall through */
1114+ fallthrough;
11151115 case IB_QPT_UC:
11161116 case IB_QPT_RC:
11171117 case IB_QPT_UD:
drivers/infiniband/sw/rxe/rxe_comp.c+1−1
@@ -282,7 +282,7 @@ static inline enum comp_state check_ack(struct rxe_qp *qp, · 281 unmodified lines
282282 if ((syn & AETH_TYPE_MASK) != AETH_ACK)
283283 return COMPST_ERROR;
284284
285− /* fall through */
285+ fallthrough;
286286 /* (IB_OPCODE_RC_RDMA_READ_RESPONSE_MIDDLE doesn't have an AETH)
287287 */
288288 case IB_OPCODE_RC_RDMA_READ_RESPONSE_MIDDLE:
drivers/infiniband/sw/rxe/rxe_task.c+1−1
@@ -71,7 +71,7 @@ void rxe_do_task(unsigned long data) · 70 unmodified lines
7171
7272 case TASK_STATE_BUSY:
7373 task->state = TASK_STATE_ARMED;
74− /* fall through */
74+ fallthrough;
7575 case TASK_STATE_ARMED:
7676 spin_unlock_irqrestore(&task->state_lock, flags);
7777 return;
drivers/infiniband/sw/rxe/rxe_verbs.c+1−1
@@ -540,7 +540,7 @@ static void init_send_wr(struct rxe_qp *qp, struct rxe_send_wr *wr, · 539 unmodified lines
540540 switch (wr->opcode) {
541541 case IB_WR_RDMA_WRITE_WITH_IMM:
542542 wr->ex.imm_data = ibwr->ex.imm_data;
543− /* fall through */
543+ fallthrough;
544544 case IB_WR_RDMA_READ:
545545 case IB_WR_RDMA_WRITE:
546546 wr->wr.rdma.remote_addr = rdma_wr(ibwr)->remote_addr;
drivers/infiniband/sw/siw/siw_cm.c+0−2
@@ -1224,12 +1224,10 @@ static void siw_cm_llp_data_ready(struct sock *sk) · 1223 unmodified lines
12241224
12251225 switch (cep->state) {
12261226 case SIW_EPSTATE_RDMA_MODE:
1227− /* fall through */
12281227 case SIW_EPSTATE_LISTENING:
12291228 break;
12301229
12311230 case SIW_EPSTATE_AWAIT_MPAREQ:
1232− /* fall through */
12331231 case SIW_EPSTATE_AWAIT_MPAREP:
12341232 siw_cm_queue_work(cep, SIW_CM_WORK_READ_MPAHDR);
12351233 break;
drivers/infiniband/sw/siw/siw_qp_rx.c+2−2
@@ -1215,7 +1215,7 @@ static int siw_rdmap_complete(struct siw_qp *qp, int error) · 1214 unmodified lines
12151215 case RDMAP_SEND_SE:
12161216 case RDMAP_SEND_SE_INVAL:
12171217 wqe->rqe.flags |= SIW_WQE_SOLICITED;
1218− /* Fall through */
1218+ fallthrough;
12191219
12201220 case RDMAP_SEND:
12211221 case RDMAP_SEND_INVAL:
@@ -1386,7 +1386,7 @@ int siw_tcp_rx_data(read_descriptor_t *rd_desc, struct sk_buff *skb, · 164 unmodified lines
13861386 * DDP segment.
13871387 */
13881388 qp->rx_fpdu->first_ddp_seg = 0;
1389− /* Fall through */
1389+ fallthrough;
13901390
13911391 case SIW_GET_DATA_START:
13921392 /*
drivers/infiniband/sw/siw/siw_qp_tx.c+2−2
@@ -1042,7 +1042,7 @@ next_wqe: · 1041 unmodified lines
10421042 case SIW_OP_SEND_REMOTE_INV:
10431043 case SIW_OP_WRITE:
10441044 siw_wqe_put_mem(wqe, tx_type);
1045− /* Fall through */
1045+ fallthrough;
10461046
10471047 case SIW_OP_INVAL_STAG:
10481048 case SIW_OP_REG_MR:
@@ -1128,7 +1128,7 @@ next_wqe: · 79 unmodified lines
11281128 case SIW_OP_READ:
11291129 case SIW_OP_READ_LOCAL_INV:
11301130 siw_wqe_put_mem(wqe, tx_type);
1131− /* Fall through */
1131+ fallthrough;
11321132
11331133 case SIW_OP_INVAL_STAG:
11341134 case SIW_OP_REG_MR:
drivers/infiniband/ulp/ipoib/ipoib_cm.c+2−2
@@ -512,13 +512,13 @@ static int ipoib_cm_rx_handler(struct ib_cm_id *cm_id, · 511 unmodified lines
512512 return ipoib_cm_req_handler(cm_id, event);
513513 case IB_CM_DREQ_RECEIVED:
514514 ib_send_cm_drep(cm_id, NULL, 0);
515− /* Fall through */
515+ fallthrough;
516516 case IB_CM_REJ_RECEIVED:
517517 p = cm_id->context;
518518 priv = ipoib_priv(p->dev);
519519 if (ib_modify_qp(p->qp, &ipoib_cm_err_attr, IB_QP_STATE))
520520 ipoib_warn(priv, "unable to move qp to error state\n");
521− /* Fall through */
521+ fallthrough;
522522 default:
523523 return 0;
524524 }
drivers/infiniband/ulp/ipoib/ipoib_main.c+1−1
@@ -502,7 +502,7 @@ static struct net_device *ipoib_get_net_dev_by_params( · 501 unmodified lines
502502 default:
503503 dev_warn_ratelimited(&dev->dev,
504504 "duplicate IP address detected\n");
505− /* Fall through */
505+ fallthrough;
506506 case 1:
507507 return net_dev;
508508 }
drivers/infiniband/ulp/iser/iser_verbs.c+1−1
@@ -711,7 +711,7 @@ static int iser_cma_handler(struct rdma_cm_id *cma_id, struct rdma_cm_event *eve · 710 unmodified lines
711711 case RDMA_CM_EVENT_REJECTED:
712712 iser_info("Connection rejected: %s\n",
713713 rdma_reject_msg(cma_id, event->status));
714− /* FALLTHROUGH */
714+ fallthrough;
715715 case RDMA_CM_EVENT_ADDR_ERROR:
716716 case RDMA_CM_EVENT_ROUTE_ERROR:
717717 case RDMA_CM_EVENT_CONNECT_ERROR:
drivers/infiniband/ulp/isert/ib_isert.c+5−5
@@ -664,8 +664,8 @@ isert_cma_handler(struct rdma_cm_id *cma_id, struct rdma_cm_event *event) · 663 unmodified lines
664664 case RDMA_CM_EVENT_ESTABLISHED:
665665 isert_connected_handler(cma_id);
666666 break;
667− case RDMA_CM_EVENT_ADDR_CHANGE: /* FALLTHRU */
668− case RDMA_CM_EVENT_DISCONNECTED: /* FALLTHRU */
667+ case RDMA_CM_EVENT_ADDR_CHANGE:
668+ case RDMA_CM_EVENT_DISCONNECTED:
669669 case RDMA_CM_EVENT_TIMEWAIT_EXIT: /* FALLTHRU */
670670 ret = isert_disconnected_handler(cma_id, event->event);
671671 break;
@@ -684,7 +684,7 @@ isert_cma_handler(struct rdma_cm_id *cma_id, struct rdma_cm_event *event) · 12 unmodified lines
684684 case RDMA_CM_EVENT_REJECTED:
685685 isert_info("Connection rejected: %s\n",
686686 rdma_reject_msg(cma_id, event->status));
687− /* fall through */
687+ fallthrough;
688688 case RDMA_CM_EVENT_UNREACHABLE:
689689 case RDMA_CM_EVENT_CONNECT_ERROR:
690690 ret = isert_connect_error(cma_id);
@@ -1470,7 +1470,7 @@ isert_put_cmd(struct isert_cmd *isert_cmd, bool comp_err) · 779 unmodified lines
14701470 transport_generic_free_cmd(&cmd->se_cmd, 0);
14711471 break;
14721472 }
1473− /* fall through */
1473+ fallthrough;
14741474 default:
14751475 iscsit_release_cmd(cmd);
14761476 break;
@@ -1648,7 +1648,7 @@ isert_do_control_comp(struct work_struct *work) · 171 unmodified lines
16481648 switch (cmd->i_state) {
16491649 case ISTATE_SEND_TASKMGTRSP:
16501650 iscsit_tmr_post_handler(cmd, cmd->conn);
1651− /* fall through */
1651+ fallthrough;
16521652 case ISTATE_SEND_REJECT:
16531653 case ISTATE_SEND_TEXTRSP:
16541654 cmd->i_state = ISTATE_SENT_STATUS;
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c+0−1
@@ -547,7 +547,6 @@ static void vema_get(struct opa_vnic_vema_port *port, · 546 unmodified lines
547547 vema_get_mac_entries(port, recvd_mad, rsp_mad);
548548 break;
549549 case OPA_EM_ATTR_IFACE_UCAST_MACS:
550− /* fall through */
551550 case OPA_EM_ATTR_IFACE_MCAST_MACS:
552551 vema_get_mac_list(port, recvd_mad, rsp_mad, attr_id);
553552 break;
drivers/input/joystick/fsia6b.c+2−2
@@ -102,12 +102,12 @@ static irqreturn_t fsia6b_serio_irq(struct serio *serio, · 101 unmodified lines
102102 input_report_key(fsia6b->dev,
103103 sw_id++,
104104 sw_state == 0);
105− /* fall-through */
105+ fallthrough;
106106 case '2':
107107 input_report_key(fsia6b->dev,
108108 sw_id++,
109109 sw_state == 1);
110− /* fall-through */
110+ fallthrough;
111111 case '1':
112112 input_report_key(fsia6b->dev,
113113 sw_id++,
drivers/input/joystick/gamecon.c+0−1
@@ -885,7 +885,6 @@ static int gc_setup_pad(struct gc *gc, int idx, int pad_type) · 884 unmodified lines
885885
886886 case GC_MULTI:
887887 input_set_capability(input_dev, EV_KEY, BTN_TRIGGER);
888− /* fall through */
889888 break;
890889
891890 case GC_PSX:
drivers/input/tablet/wacom_serial4.c+1−1
@@ -213,7 +213,7 @@ static void wacom_handle_model_response(struct wacom *wacom) · 212 unmodified lines
213213 case 0x3731: /* PL-710 */
214214 wacom->res_x = 2540;
215215 wacom->res_y = 2540;
216− /* fall through */
216+ fallthrough;
217217 case 0x3535: /* PL-550 */
218218 case 0x3830: /* PL-800 */
219219 wacom->extra_z_bits = 2;
drivers/input/touchscreen/atmel_mxt_ts.c+1−1
@@ -477,7 +477,7 @@ static int mxt_lookup_bootloader_address(struct mxt_data *data, bool retry) · 476 unmodified lines
477477 bootloader = appmode - 0x24;
478478 break;
479479 }
480− /* Fall through - for normal case */
480+ fallthrough; /* for normal case */
481481 case 0x4c:
482482 case 0x4d:
483483 case 0x5a:
drivers/input/touchscreen/wm831x-ts.c+1−1
@@ -290,7 +290,7 @@ static int wm831x_ts_probe(struct platform_device *pdev) · 289 unmodified lines
290290 default:
291291 dev_err(&pdev->dev, "Unsupported ISEL setting: %d\n",
292292 pdata->isel);
293− /* Fall through */
293+ fallthrough;
294294 case 200:
295295 case 0:
296296 wm831x_set_bits(wm831x, WM831X_TOUCH_CONTROL_2,
drivers/iommu/amd/Kconfig+1−1
@@ -10,7 +10,7 @@ config AMD_IOMMU · 9 unmodified lines
1010 select IOMMU_API
1111 select IOMMU_IOVA
1212 select IOMMU_DMA
13− depends on X86_64 && PCI && ACPI
13+ depends on X86_64 && PCI && ACPI && HAVE_CMPXCHG_DOUBLE
1414 help
1515 With this option you can enable support for AMD IOMMU hardware in
1616 your system. An IOMMU is a hardware component which provides
drivers/iommu/amd/init.c+20−3
@@ -1511,7 +1511,14 @@ static int __init init_iommu_one(struct amd_iommu *iommu, struct ivhd_header *h) · 1510 unmodified lines
15111511 iommu->mmio_phys_end = MMIO_REG_END_OFFSET;
15121512 else
15131513 iommu->mmio_phys_end = MMIO_CNTR_CONF_OFFSET;
1514− if (((h->efr_attr & (0x1 << IOMMU_FEAT_GASUP_SHIFT)) == 0))
1514+
1515+ /*
1516+ * Note: GA (128-bit IRTE) mode requires cmpxchg16b supports.
1517+ * GAM also requires GA mode. Therefore, we need to
1518+ * check cmpxchg16b support before enabling it.
1519+ */
1520+ if (!boot_cpu_has(X86_FEATURE_CX16) ||
1521+ ((h->efr_attr & (0x1 << IOMMU_FEAT_GASUP_SHIFT)) == 0))
15151522 amd_iommu_guest_ir = AMD_IOMMU_GUEST_IR_LEGACY;
15161523 break;
15171524 case 0x11:
@@ -1520,8 +1527,18 @@ static int __init init_iommu_one(struct amd_iommu *iommu, struct ivhd_header *h) · 2 unmodified lines
15201527 iommu->mmio_phys_end = MMIO_REG_END_OFFSET;
15211528 else
15221529 iommu->mmio_phys_end = MMIO_CNTR_CONF_OFFSET;
1523− if (((h->efr_reg & (0x1 << IOMMU_EFR_GASUP_SHIFT)) == 0))
1530+
1531+ /*
1532+ * Note: GA (128-bit IRTE) mode requires cmpxchg16b supports.
1533+ * XT, GAM also requires GA mode. Therefore, we need to
1534+ * check cmpxchg16b support before enabling them.
1535+ */
1536+ if (!boot_cpu_has(X86_FEATURE_CX16) ||
1537+ ((h->efr_reg & (0x1 << IOMMU_EFR_GASUP_SHIFT)) == 0)) {
15241538 amd_iommu_guest_ir = AMD_IOMMU_GUEST_IR_LEGACY;
1539+ break;
1540+ }
1541+
15251542 /*
15261543 * Note: Since iommu_update_intcapxt() leverages
15271544 * the IOMMU MMIO access to MSI capability block registers
@@ -2258,7 +2275,7 @@ static void iommu_enable_ga(struct amd_iommu *iommu) · 730 unmodified lines
22582275 switch (amd_iommu_guest_ir) {
22592276 case AMD_IOMMU_GUEST_IR_VAPIC:
22602277 iommu_feature_enable(iommu, CONTROL_GAM_EN);
2261− /* Fall through */
2278+ fallthrough;
22622279 case AMD_IOMMU_GUEST_IR_LEGACY_GA:
22632280 iommu_feature_enable(iommu, CONTROL_GA_EN);
22642281 iommu->irte_ops = &irte_128_ops;
drivers/iommu/amd/iommu.c+21−5
@@ -2659,7 +2659,12 @@ static int amd_iommu_def_domain_type(struct device *dev) · 2658 unmodified lines
26592659 if (!dev_data)
26602660 return 0;
26612661
2662− if (dev_data->iommu_v2)
2662+ /*
2663+ * Do not identity map IOMMUv2 capable devices when memory encryption is
2664+ * active, because some of those devices (AMD GPUs) don't have the
2665+ * encryption bit in their DMA-mask and require remapping.
2666+ */
2667+ if (!mem_encrypt_active() && dev_data->iommu_v2)
26632668 return IOMMU_DOMAIN_IDENTITY;
26642669
26652670 return 0;
@@ -3292,6 +3297,7 @@ out: · 626 unmodified lines
32923297 static int modify_irte_ga(u16 devid, int index, struct irte_ga *irte,
32933298 struct amd_ir_data *data)
32943299 {
3300+ bool ret;
32953301 struct irq_remap_table *table;
32963302 struct amd_iommu *iommu;
32973303 unsigned long flags;
@@ -3309,10 +3315,18 @@ static int modify_irte_ga(u16 devid, int index, struct irte_ga *irte, · 11 unmodified lines
33093315
33103316 entry = (struct irte_ga *)table->table;
33113317 entry = &entry[index];
3312− entry->lo.fields_remap.valid = 0;
3313− entry->hi.val = irte->hi.val;
3314− entry->lo.val = irte->lo.val;
3315− entry->lo.fields_remap.valid = 1;
3318+
3319+ ret = cmpxchg_double(&entry->lo.val, &entry->hi.val,
3320+ entry->lo.val, entry->hi.val,
3321+ irte->lo.val, irte->hi.val);
3322+ /*
3323+ * We use cmpxchg16 to atomically update the 128-bit IRTE,
3324+ * and it cannot be updated by the hardware or other processors
3325+ * behind us, so the return value of cmpxchg16 should be the
3326+ * same as the old value.
3327+ */
3328+ WARN_ON(!ret);
3329+
33163330 if (data)
33173331 data->ref = entry;
33183332
@@ -3850,6 +3864,7 @@ int amd_iommu_deactivate_guest_mode(void *data) · 531 unmodified lines
38503864 struct amd_ir_data *ir_data = (struct amd_ir_data *)data;
38513865 struct irte_ga *entry = (struct irte_ga *) ir_data->entry;
38523866 struct irq_cfg *cfg = ir_data->cfg;
3867+ u64 valid = entry->lo.fields_remap.valid;
38533868
38543869 if (!AMD_IOMMU_GUEST_IR_VAPIC(amd_iommu_guest_ir) ||
38553870 !entry || !entry->lo.fields_vapic.guest_mode)
@@ -3858,6 +3873,7 @@ int amd_iommu_deactivate_guest_mode(void *data) · 2 unmodified lines
38583873 entry->lo.val = 0;
38593874 entry->hi.val = 0;
38603875
3876+ entry->lo.fields_remap.valid = valid;
38613877 entry->lo.fields_remap.dm = apic->irq_dest_mode;
38623878 entry->lo.fields_remap.int_type = apic->irq_delivery_mode;
38633879 entry->hi.fields.vector = cfg->vector;
drivers/iommu/amd/iommu_v2.c+7−0
@@ -737,6 +737,13 @@ int amd_iommu_init_device(struct pci_dev *pdev, int pasids) · 736 unmodified lines
737737
738738 might_sleep();
739739
740+ /*
741+ * When memory encryption is active the device is likely not in a
742+ * direct-mapped domain. Forbid using IOMMUv2 functionality for now.
743+ */
744+ if (mem_encrypt_active())
745+ return -ENODEV;
746+
740747 if (!amd_iommu_v2_supported())
741748 return -ENODEV;
742749
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c+5−6
@@ -903,7 +903,7 @@ static int arm_smmu_cmdq_build_cmd(u64 *cmd, struct arm_smmu_cmdq_ent *ent) · 902 unmodified lines
903903 break;
904904 case CMDQ_OP_CFGI_CD:
905905 cmd[0] |= FIELD_PREP(CMDQ_CFGI_0_SSID, ent->cfgi.ssid);
906− /* Fallthrough */
906+ fallthrough;
907907 case CMDQ_OP_CFGI_STE:
908908 cmd[0] |= FIELD_PREP(CMDQ_CFGI_0_SID, ent->cfgi.sid);
909909 cmd[1] |= FIELD_PREP(CMDQ_CFGI_1_LEAF, ent->cfgi.leaf);
@@ -936,7 +936,7 @@ static int arm_smmu_cmdq_build_cmd(u64 *cmd, struct arm_smmu_cmdq_ent *ent) · 26 unmodified lines
936936 break;
937937 case CMDQ_OP_TLBI_NH_ASID:
938938 cmd[0] |= FIELD_PREP(CMDQ_TLBI_0_ASID, ent->tlbi.asid);
939− /* Fallthrough */
939+ fallthrough;
940940 case CMDQ_OP_TLBI_S12_VMALL:
941941 cmd[0] |= FIELD_PREP(CMDQ_TLBI_0_VMID, ent->tlbi.vmid);
942942 break;
@@ -1036,7 +1036,6 @@ static void arm_smmu_cmdq_skip_err(struct arm_smmu_device *smmu) · 93 unmodified lines
10361036 */
10371037 return;
10381038 case CMDQ_ERR_CERROR_ILL_IDX:
1039− /* Fallthrough */
10401039 default:
10411040 break;
10421041 }
@@ -3758,7 +3757,7 @@ static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu) · 2715 unmodified lines
37583757 switch (FIELD_GET(IDR0_STALL_MODEL, reg)) {
37593758 case IDR0_STALL_MODEL_FORCE:
37603759 smmu->features |= ARM_SMMU_FEAT_STALL_FORCE;
3761− /* Fallthrough */
3760+ fallthrough;
37623761 case IDR0_STALL_MODEL_STALL:
37633762 smmu->features |= ARM_SMMU_FEAT_STALLS;
37643763 }
@@ -3778,7 +3777,7 @@ static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu) · 13 unmodified lines
37783777 switch (FIELD_GET(IDR0_TTF, reg)) {
37793778 case IDR0_TTF_AARCH32_64:
37803779 smmu->ias = 40;
3781− /* Fallthrough */
3780+ fallthrough;
37823781 case IDR0_TTF_AARCH64:
37833782 break;
37843783 default:
@@ -3875,7 +3874,7 @@ static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu) · 90 unmodified lines
38753874 default:
38763875 dev_info(smmu->dev,
38773876 "unknown output address size. Truncating to 48-bit\n");
3878− /* Fallthrough */
3877+ fallthrough;
38793878 case IDR5_OAS_48_BIT:
38803879 smmu->oas = 48;
38813880 }
drivers/iommu/dma-iommu.c+2−2
@@ -1035,8 +1035,8 @@ static void *iommu_dma_alloc(struct device *dev, size_t size, · 1034 unmodified lines
10351035
10361036 if (IS_ENABLED(CONFIG_DMA_DIRECT_REMAP) &&
10371037 !gfpflags_allow_blocking(gfp) && !coherent)
1038− cpu_addr = dma_alloc_from_pool(dev, PAGE_ALIGN(size), &page,
1039− gfp);
1038+ page = dma_alloc_from_pool(dev, PAGE_ALIGN(size), &cpu_addr,
1039+ gfp, NULL);
10401040 else
10411041 cpu_addr = iommu_dma_alloc_pages(dev, size, &page, gfp, attrs);
10421042 if (!cpu_addr)
drivers/iommu/intel/iommu.c+62−53
@@ -123,29 +123,29 @@ static inline unsigned int level_to_offset_bits(int level) · 122 unmodified lines
123123 return (level - 1) * LEVEL_STRIDE;
124124 }
125125
126−static inline int pfn_level_offset(unsigned long pfn, int level)
126+static inline int pfn_level_offset(u64 pfn, int level)
127127 {
128128 return (pfn >> level_to_offset_bits(level)) & LEVEL_MASK;
129129 }
130130
131−static inline unsigned long level_mask(int level)
131+static inline u64 level_mask(int level)
132132 {
133− return -1UL << level_to_offset_bits(level);
133+ return -1ULL << level_to_offset_bits(level);
134134 }
135135
136−static inline unsigned long level_size(int level)
136+static inline u64 level_size(int level)
137137 {
138− return 1UL << level_to_offset_bits(level);
138+ return 1ULL << level_to_offset_bits(level);
139139 }
140140
141−static inline unsigned long align_to_level(unsigned long pfn, int level)
141+static inline u64 align_to_level(u64 pfn, int level)
142142 {
143143 return (pfn + level_size(level) - 1) & level_mask(level);
144144 }
145145
146146 static inline unsigned long lvl_to_nr_pages(unsigned int lvl)
147147 {
148− return 1 << min_t(int, (lvl - 1) * LEVEL_STRIDE, MAX_AGAW_PFN_WIDTH);
148+ return 1UL << min_t(int, (lvl - 1) * LEVEL_STRIDE, MAX_AGAW_PFN_WIDTH);
149149 }
150150
151151 /* VT-d pages must always be _smaller_ than MM pages. Otherwise things
@@ -364,7 +364,6 @@ static int iommu_skip_te_disable; · 212 unmodified lines
364364 int intel_iommu_gfx_mapped;
365365 EXPORT_SYMBOL_GPL(intel_iommu_gfx_mapped);
366366
367−#define DUMMY_DEVICE_DOMAIN_INFO ((struct device_domain_info *)(-1))
368367 #define DEFER_DEVICE_DOMAIN_INFO ((struct device_domain_info *)(-2))
369368 struct device_domain_info *get_domain_info(struct device *dev)
370369 {
@@ -374,8 +373,7 @@ struct device_domain_info *get_domain_info(struct device *dev) · 3 unmodified lines
374373 return NULL;
375374
376375 info = dev_iommu_priv_get(dev);
377− if (unlikely(info == DUMMY_DEVICE_DOMAIN_INFO ||
378− info == DEFER_DEVICE_DOMAIN_INFO))
376+ if (unlikely(info == DEFER_DEVICE_DOMAIN_INFO))
379377 return NULL;
380378
381379 return info;
@@ -742,11 +740,6 @@ struct context_entry *iommu_context_addr(struct intel_iommu *iommu, u8 bus, · 360 unmodified lines
742740 return &context[devfn];
743741 }
744742
745−static int iommu_dummy(struct device *dev)
746−{
747− return dev_iommu_priv_get(dev) == DUMMY_DEVICE_DOMAIN_INFO;
748−}
749−
750743 static bool attach_deferred(struct device *dev)
751744 {
752745 return dev_iommu_priv_get(dev) == DEFER_DEVICE_DOMAIN_INFO;
@@ -779,6 +772,53 @@ is_downstream_to_pci_bridge(struct device *dev, struct device *bridge) · 26 unmodified lines
779772 return false;
780773 }
781774
775+static bool quirk_ioat_snb_local_iommu(struct pci_dev *pdev)
776+{
777+ struct dmar_drhd_unit *drhd;
778+ u32 vtbar;
779+ int rc;
780+
781+ /* We know that this device on this chipset has its own IOMMU.
782+ * If we find it under a different IOMMU, then the BIOS is lying
783+ * to us. Hope that the IOMMU for this device is actually
784+ * disabled, and it needs no translation...
785+ */
786+ rc = pci_bus_read_config_dword(pdev->bus, PCI_DEVFN(0, 0), 0xb0, &vtbar);
787+ if (rc) {
788+ /* "can't" happen */
789+ dev_info(&pdev->dev, "failed to run vt-d quirk\n");
790+ return false;
791+ }
792+ vtbar &= 0xffff0000;
793+
794+ /* we know that the this iommu should be at offset 0xa000 from vtbar */
795+ drhd = dmar_find_matched_drhd_unit(pdev);
796+ if (!drhd || drhd->reg_base_addr - vtbar != 0xa000) {
797+ pr_warn_once(FW_BUG "BIOS assigned incorrect VT-d unit for Intel(R) QuickData Technology device\n");
798+ add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
799+ return true;
800+ }
801+
802+ return false;
803+}
804+
805+static bool iommu_is_dummy(struct intel_iommu *iommu, struct device *dev)
806+{
807+ if (!iommu || iommu->drhd->ignored)
808+ return true;
809+
810+ if (dev_is_pci(dev)) {
811+ struct pci_dev *pdev = to_pci_dev(dev);
812+
813+ if (pdev->vendor == PCI_VENDOR_ID_INTEL &&
814+ pdev->device == PCI_DEVICE_ID_INTEL_IOAT_SNB &&
815+ quirk_ioat_snb_local_iommu(pdev))
816+ return true;
817+ }
818+
819+ return false;
820+}
821+
782822 struct intel_iommu *device_to_iommu(struct device *dev, u8 *bus, u8 *devfn)
783823 {
784824 struct dmar_drhd_unit *drhd = NULL;
@@ -788,7 +828,7 @@ struct intel_iommu *device_to_iommu(struct device *dev, u8 *bus, u8 *devfn) · 3 unmodified lines
788828 u16 segment = 0;
789829 int i;
790830
791− if (!dev || iommu_dummy(dev))
831+ if (!dev)
792832 return NULL;
793833
794834 if (dev_is_pci(dev)) {
@@ -805,7 +845,7 @@ struct intel_iommu *device_to_iommu(struct device *dev, u8 *bus, u8 *devfn) · 10 unmodified lines
805845 dev = &ACPI_COMPANION(dev)->dev;
806846
807847 rcu_read_lock();
808− for_each_active_iommu(iommu, drhd) {
848+ for_each_iommu(iommu, drhd) {
809849 if (pdev && segment != drhd->segment)
810850 continue;
811851
@@ -841,6 +881,9 @@ struct intel_iommu *device_to_iommu(struct device *dev, u8 *bus, u8 *devfn) · 29 unmodified lines
841881 }
842882 iommu = NULL;
843883 out:
884+ if (iommu_is_dummy(iommu, dev))
885+ iommu = NULL;
886+
844887 rcu_read_unlock();
845888
846889 return iommu;
@@ -2447,7 +2490,7 @@ struct dmar_domain *find_domain(struct device *dev) · 1600 unmodified lines
24472490 {
24482491 struct device_domain_info *info;
24492492
2450− if (unlikely(attach_deferred(dev) || iommu_dummy(dev)))
2493+ if (unlikely(attach_deferred(dev)))
24512494 return NULL;
24522495
24532496 /* No lock here, assumes no domain exit in normal case */
@@ -3989,35 +4032,6 @@ static void __init iommu_exit_mempool(void) · 1535 unmodified lines
39894032 iova_cache_put();
39904033 }
39914034
3992−static void quirk_ioat_snb_local_iommu(struct pci_dev *pdev)
3993−{
3994− struct dmar_drhd_unit *drhd;
3995− u32 vtbar;
3996− int rc;
3997−
3998− /* We know that this device on this chipset has its own IOMMU.
3999− * If we find it under a different IOMMU, then the BIOS is lying
4000− * to us. Hope that the IOMMU for this device is actually
4001− * disabled, and it needs no translation...
4002− */
4003− rc = pci_bus_read_config_dword(pdev->bus, PCI_DEVFN(0, 0), 0xb0, &vtbar);
4004− if (rc) {
4005− /* "can't" happen */
4006− dev_info(&pdev->dev, "failed to run vt-d quirk\n");
4007− return;
4008− }
4009− vtbar &= 0xffff0000;
4010−
4011− /* we know that the this iommu should be at offset 0xa000 from vtbar */
4012− drhd = dmar_find_matched_drhd_unit(pdev);
4013− if (!drhd || drhd->reg_base_addr - vtbar != 0xa000) {
4014− pr_warn_once(FW_BUG "BIOS assigned incorrect VT-d unit for Intel(R) QuickData Technology device\n");
4015− add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
4016− dev_iommu_priv_set(&pdev->dev, DUMMY_DEVICE_DOMAIN_INFO);
4017− }
4018−}
4019−DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT_SNB, quirk_ioat_snb_local_iommu);
4020−
40214035 static void __init init_no_remapping_devices(void)
40224036 {
40234037 struct dmar_drhd_unit *drhd;
@@ -4049,12 +4063,8 @@ static void __init init_no_remapping_devices(void) · 25 unmodified lines
40494063 /* This IOMMU has *only* gfx devices. Either bypass it or
40504064 set the gfx_mapped flag, as appropriate */
40514065 drhd->gfx_dedicated = 1;
4052− if (!dmar_map_gfx) {
4066+ if (!dmar_map_gfx)
40534067 drhd->ignored = 1;
4054− for_each_active_dev_scope(drhd->devices,
4055− drhd->devices_cnt, i, dev)
4056− dev_iommu_priv_set(dev, DUMMY_DEVICE_DOMAIN_INFO);
4057− }
40584068 }
40594069 }
40604070
@@ -5070,7 +5080,6 @@ static struct iommu_domain *intel_iommu_domain_alloc(unsigned type) · 1009 unmodified lines
50705080
50715081 switch (type) {
50725082 case IOMMU_DOMAIN_DMA:
5073− /* fallthrough */
50745083 case IOMMU_DOMAIN_UNMANAGED:
50755084 dmar_domain = alloc_domain(0);
50765085 if (!dmar_domain) {
drivers/iommu/intel/irq_remapping.c+8−2
@@ -508,12 +508,18 @@ static void iommu_enable_irq_remapping(struct intel_iommu *iommu) · 507 unmodified lines
508508
509509 /* Enable interrupt-remapping */
510510 iommu->gcmd |= DMA_GCMD_IRE;
511− iommu->gcmd &= ~DMA_GCMD_CFI; /* Block compatibility-format MSIs */
512511 writel(iommu->gcmd, iommu->reg + DMAR_GCMD_REG);
513−
514512 IOMMU_WAIT_OP(iommu, DMAR_GSTS_REG,
515513 readl, (sts & DMA_GSTS_IRES), sts);
516514
515+ /* Block compatibility-format MSIs */
516+ if (sts & DMA_GSTS_CFIS) {
517+ iommu->gcmd &= ~DMA_GCMD_CFI;
518+ writel(iommu->gcmd, iommu->reg + DMAR_GCMD_REG);
519+ IOMMU_WAIT_OP(iommu, DMAR_GSTS_REG,
520+ readl, !(sts & DMA_GSTS_CFIS), sts);
521+ }
522+
517523 /*
518524 * With CFI clear in the Global Command register, we should be
519525 * protected from dangerous (i.e. compatibility) interrupts
drivers/iommu/virtio-iommu.c+1−1
@@ -440,7 +440,7 @@ static int viommu_add_resv_mem(struct viommu_endpoint *vdev, · 439 unmodified lines
440440 default:
441441 dev_warn(vdev->dev, "unknown resv mem subtype 0x%x\n",
442442 mem->subtype);
443− /* Fall-through */
443+ fallthrough;
444444 case VIRTIO_IOMMU_RESV_MEM_T_RESERVED:
445445 region = iommu_alloc_resv_region(start, size, 0,
446446 IOMMU_RESV_RESERVED);
drivers/irqchip/Kconfig+1−1
@@ -425,7 +425,7 @@ config GOLDFISH_PIC · 424 unmodified lines
425425 for Goldfish based virtual platforms.
426426
427427 config QCOM_PDC
428− tristate "QCOM PDC"
428+ bool "QCOM PDC"
429429 depends on ARCH_QCOM
430430 select IRQ_DOMAIN_HIERARCHY
431431 help
drivers/irqchip/irq-gic-v3-its.c+2−2
@@ -2737,7 +2737,7 @@ static bool allocate_vpe_l2_table(int cpu, u32 id) · 2736 unmodified lines
27372737 switch (gpsz) {
27382738 default:
27392739 WARN_ON(1);
2740− /* fall through */
2740+ fallthrough;
27412741 case GIC_PAGE_SIZE_4K:
27422742 psz = SZ_4K;
27432743 break;
@@ -2832,7 +2832,7 @@ static int allocate_vpe_l1_table(void) · 88 unmodified lines
28322832 switch (gpsz) {
28332833 default:
28342834 gpsz = GIC_PAGE_SIZE_4K;
2835− /* fall through */
2835+ fallthrough;
28362836 case GIC_PAGE_SIZE_4K:
28372837 psz = SZ_4K;
28382838 break;
drivers/irqchip/irq-gic-v3.c+4−4
@@ -965,10 +965,10 @@ static void gic_cpu_sys_reg_init(void) · 964 unmodified lines
965965 case 7:
966966 write_gicreg(0, ICC_AP0R3_EL1);
967967 write_gicreg(0, ICC_AP0R2_EL1);
968− /* Fall through */
968+ fallthrough;
969969 case 6:
970970 write_gicreg(0, ICC_AP0R1_EL1);
971− /* Fall through */
971+ fallthrough;
972972 case 5:
973973 case 4:
974974 write_gicreg(0, ICC_AP0R0_EL1);
@@ -982,10 +982,10 @@ static void gic_cpu_sys_reg_init(void) · 7 unmodified lines
982982 case 7:
983983 write_gicreg(0, ICC_AP1R3_EL1);
984984 write_gicreg(0, ICC_AP1R2_EL1);
985− /* Fall through */
985+ fallthrough;
986986 case 6:
987987 write_gicreg(0, ICC_AP1R1_EL1);
988− /* Fall through */
988+ fallthrough;
989989 case 5:
990990 case 4:
991991 write_gicreg(0, ICC_AP1R0_EL1);
drivers/irqchip/irq-imx-gpcv2.c+1−1
@@ -259,7 +259,7 @@ static int __init imx_gpcv2_irqchip_init(struct device_node *node, · 258 unmodified lines
259259 case 4:
260260 writel_relaxed(~0, reg + GPC_IMR1_CORE2);
261261 writel_relaxed(~0, reg + GPC_IMR1_CORE3);
262− /* fall through */
262+ fallthrough;
263263 case 2:
264264 writel_relaxed(~0, reg + GPC_IMR1_CORE0);
265265 writel_relaxed(~0, reg + GPC_IMR1_CORE1);
drivers/irqchip/irq-ingenic.c+1−1
@@ -125,7 +125,7 @@ static int __init ingenic_intc_of_init(struct device_node *node, · 124 unmodified lines
125125 irq_reg_writel(gc, IRQ_MSK(32), JZ_REG_INTC_SET_MASK);
126126 }
127127
128− if (request_irq(parent_irq, intc_cascade, 0,
128+ if (request_irq(parent_irq, intc_cascade, IRQF_NO_SUSPEND,
129129 "SoC intc cascade interrupt", NULL))
130130 pr_err("Failed to register SoC intc cascade interrupt\n");
131131 return 0;
drivers/irqchip/irq-mips-gic.c+1−1
@@ -480,7 +480,7 @@ static int gic_irq_domain_map(struct irq_domain *d, unsigned int virq, · 479 unmodified lines
480480 case GIC_LOCAL_INT_TIMER:
481481 /* CONFIG_MIPS_CMP workaround (see __gic_init) */
482482 map = GIC_MAP_PIN_MAP_TO_PIN | timer_cpu_pin;
483− /* fall-through */
483+ fallthrough;
484484 case GIC_LOCAL_INT_PERFCTR:
485485 case GIC_LOCAL_INT_FDC:
486486 /*
drivers/irqchip/irq-mtk-cirq.c+1−3
@@ -295,6 +295,4 @@ out_free: · 294 unmodified lines
295295 return ret;
296296 }
297297
298−IRQCHIP_PLATFORM_DRIVER_BEGIN(mtk_cirq)
299−IRQCHIP_MATCH("mediatek,mtk-cirq", mtk_cirq_of_init)
300−IRQCHIP_PLATFORM_DRIVER_END(mtk_cirq)
298+IRQCHIP_DECLARE(mtk_cirq, "mediatek,mtk-cirq", mtk_cirq_of_init);
drivers/irqchip/irq-mtk-sysirq.c+1−3
@@ -231,6 +231,4 @@ out_free_chip: · 230 unmodified lines
231231 kfree(chip_data);
232232 return ret;
233233 }
234−IRQCHIP_PLATFORM_DRIVER_BEGIN(mtk_sysirq)
235−IRQCHIP_MATCH("mediatek,mt6577-sysirq", mtk_sysirq_of_init)
236−IRQCHIP_PLATFORM_DRIVER_END(mtk_sysirq)
234+IRQCHIP_DECLARE(mtk_sysirq, "mediatek,mt6577-sysirq", mtk_sysirq_of_init);
drivers/irqchip/irq-stm32-exti.c+12−2
@@ -416,6 +416,16 @@ static void stm32_irq_ack(struct irq_data *d) · 415 unmodified lines
416416 irq_gc_unlock(gc);
417417 }
418418
419+/* directly set the target bit without reading first. */
420+static inline void stm32_exti_write_bit(struct irq_data *d, u32 reg)
421+{
422+ struct stm32_exti_chip_data *chip_data = irq_data_get_irq_chip_data(d);
423+ void __iomem *base = chip_data->host_data->base;
424+ u32 val = BIT(d->hwirq % IRQS_PER_BANK);
425+
426+ writel_relaxed(val, base + reg);
427+}
428+
419429 static inline u32 stm32_exti_set_bit(struct irq_data *d, u32 reg)
420430 {
421431 struct stm32_exti_chip_data *chip_data = irq_data_get_irq_chip_data(d);
@@ -449,9 +459,9 @@ static void stm32_exti_h_eoi(struct irq_data *d) · 27 unmodified lines
449459
450460 raw_spin_lock(&chip_data->rlock);
451461
452− stm32_exti_set_bit(d, stm32_bank->rpr_ofst);
462+ stm32_exti_write_bit(d, stm32_bank->rpr_ofst);
453463 if (stm32_bank->fpr_ofst != UNDEF_REG)
454− stm32_exti_set_bit(d, stm32_bank->fpr_ofst);
464+ stm32_exti_write_bit(d, stm32_bank->fpr_ofst);
455465
456466 raw_spin_unlock(&chip_data->rlock);
457467
drivers/irqchip/irq-ti-sci-inta.c+79−16
@@ -8,6 +8,7 @@ · 7 unmodified lines
88
99 #include <linux/err.h>
1010 #include <linux/io.h>
11+#include <linux/irq.h>
1112 #include <linux/irqchip.h>
1213 #include <linux/irqdomain.h>
1314 #include <linux/interrupt.h>
@@ -83,6 +84,7 @@ struct ti_sci_inta_vint_desc { · 69 unmodified lines
8384 * @vint_mutex: Mutex to protect vint_list
8485 * @base: Base address of the memory mapped IO registers
8586 * @pdev: Pointer to platform device.
87+ * @ti_sci_id: TI-SCI device identifier
8688 */
8789 struct ti_sci_inta_irq_domain {
8890 const struct ti_sci_handle *sci;
@@ -93,6 +95,7 @@ struct ti_sci_inta_irq_domain { · 4 unmodified lines
9395 struct mutex vint_mutex;
9496 void __iomem *base;
9597 struct platform_device *pdev;
98+ u32 ti_sci_id;
9699 };
97100
98101 #define to_vint_desc(e, i) container_of(e, struct ti_sci_inta_vint_desc, \
@@ -128,6 +131,37 @@ static void ti_sci_inta_irq_handler(struct irq_desc *desc) · 29 unmodified lines
128131 chained_irq_exit(irq_desc_get_chip(desc), desc);
129132 }
130133
134+/**
135+ * ti_sci_inta_xlate_irq() - Translate hwirq to parent's hwirq.
136+ * @inta: IRQ domain corresponding to Interrupt Aggregator
137+ * @irq: Hardware irq corresponding to the above irq domain
138+ *
139+ * Return parent irq number if translation is available else -ENOENT.
140+ */
141+static int ti_sci_inta_xlate_irq(struct ti_sci_inta_irq_domain *inta,
142+ u16 vint_id)
143+{
144+ struct device_node *np = dev_of_node(&inta->pdev->dev);
145+ u32 base, parent_base, size;
146+ const __be32 *range;
147+ int len;
148+
149+ range = of_get_property(np, "ti,interrupt-ranges", &len);
150+ if (!range)
151+ return vint_id;
152+
153+ for (len /= sizeof(*range); len >= 3; len -= 3) {
154+ base = be32_to_cpu(*range++);
155+ parent_base = be32_to_cpu(*range++);
156+ size = be32_to_cpu(*range++);
157+
158+ if (base <= vint_id && vint_id < base + size)
159+ return vint_id - base + parent_base;
160+ }
161+
162+ return -ENOENT;
163+}
164+
131165 /**
132166 * ti_sci_inta_alloc_parent_irq() - Allocate parent irq to Interrupt aggregator
133167 * @domain: IRQ domain corresponding to Interrupt Aggregator
@@ -139,30 +173,52 @@ static struct ti_sci_inta_vint_desc *ti_sci_inta_alloc_parent_irq(struct irq_dom · 5 unmodified lines
139173 struct ti_sci_inta_irq_domain *inta = domain->host_data;
140174 struct ti_sci_inta_vint_desc *vint_desc;
141175 struct irq_fwspec parent_fwspec;
176+ struct device_node *parent_node;
142177 unsigned int parent_virq;
143− u16 vint_id;
178+ u16 vint_id, p_hwirq;
179+ int ret;
144180
145181 vint_id = ti_sci_get_free_resource(inta->vint);
146182 if (vint_id == TI_SCI_RESOURCE_NULL)
147183 return ERR_PTR(-EINVAL);
148184
185+ p_hwirq = ti_sci_inta_xlate_irq(inta, vint_id);
186+ if (p_hwirq < 0) {
187+ ret = p_hwirq;
188+ goto free_vint;
189+ }
190+
149191 vint_desc = kzalloc(sizeof(*vint_desc), GFP_KERNEL);
150− if (!vint_desc)
151− return ERR_PTR(-ENOMEM);
192+ if (!vint_desc) {
193+ ret = -ENOMEM;
194+ goto free_vint;
195+ }
152196
153197 vint_desc->domain = domain;
154198 vint_desc->vint_id = vint_id;
155199 INIT_LIST_HEAD(&vint_desc->list);
156200
157− parent_fwspec.fwnode = of_node_to_fwnode(of_irq_find_parent(dev_of_node(&inta->pdev->dev)));
158− parent_fwspec.param_count = 2;
159− parent_fwspec.param[0] = inta->pdev->id;
160− parent_fwspec.param[1] = vint_desc->vint_id;
201+ parent_node = of_irq_find_parent(dev_of_node(&inta->pdev->dev));
202+ parent_fwspec.fwnode = of_node_to_fwnode(parent_node);
203+
204+ if (of_device_is_compatible(parent_node, "arm,gic-v3")) {
205+ /* Parent is GIC */
206+ parent_fwspec.param_count = 3;
207+ parent_fwspec.param[0] = 0;
208+ parent_fwspec.param[1] = p_hwirq - 32;
209+ parent_fwspec.param[2] = IRQ_TYPE_LEVEL_HIGH;
210+ } else {
211+ /* Parent is Interrupt Router */
212+ parent_fwspec.param_count = 1;
213+ parent_fwspec.param[0] = p_hwirq;
214+ }
161215
162216 parent_virq = irq_create_fwspec_mapping(&parent_fwspec);
163217 if (parent_virq == 0) {
164− kfree(vint_desc);
165− return ERR_PTR(-EINVAL);
218+ dev_err(&inta->pdev->dev, "Parent IRQ allocation failed\n");
219+ ret = -EINVAL;
220+ goto free_vint_desc;
221+
166222 }
167223 vint_desc->parent_virq = parent_virq;
168224
@@ -171,6 +227,11 @@ static struct ti_sci_inta_vint_desc *ti_sci_inta_alloc_parent_irq(struct irq_dom · 2 unmodified lines
171227 ti_sci_inta_irq_handler, vint_desc);
172228
173229 return vint_desc;
230+free_vint_desc:
231+ kfree(vint_desc);
232+free_vint:
233+ ti_sci_release_resource(inta->vint, vint_id);
234+ return ERR_PTR(ret);
174235 }
175236
176237 /**
@@ -202,7 +263,7 @@ static struct ti_sci_inta_event_desc *ti_sci_inta_alloc_event(struct ti_sci_inta · 25 unmodified lines
202263
203264 err = inta->sci->ops.rm_irq_ops.set_event_map(inta->sci,
204265 dev_id, dev_index,
205− inta->pdev->id,
266+ inta->ti_sci_id,
206267 vint_desc->vint_id,
207268 event_desc->global_event,
208269 free_bit);
@@ -299,7 +360,7 @@ static void ti_sci_inta_free_irq(struct ti_sci_inta_event_desc *event_desc, · 90 unmodified lines
299360 inta->sci->ops.rm_irq_ops.free_event_map(inta->sci,
300361 HWIRQ_TO_DEVID(hwirq),
301362 HWIRQ_TO_IRQID(hwirq),
302− inta->pdev->id,
363+ inta->ti_sci_id,
303364 vint_desc->vint_id,
304365 event_desc->global_event,
305366 event_desc->vint_bit);
@@ -547,21 +608,21 @@ static int ti_sci_inta_irq_domain_probe(struct platform_device *pdev) · 241 unmodified lines
547608 return ret;
548609 }
549610
550− ret = of_property_read_u32(dev->of_node, "ti,sci-dev-id", &pdev->id);
611+ ret = of_property_read_u32(dev->of_node, "ti,sci-dev-id", &inta->ti_sci_id);
551612 if (ret) {
552613 dev_err(dev, "missing 'ti,sci-dev-id' property\n");
553614 return -EINVAL;
554615 }
555616
556− inta->vint = devm_ti_sci_get_of_resource(inta->sci, dev, pdev->id,
557− "ti,sci-rm-range-vint");
617+ inta->vint = devm_ti_sci_get_resource(inta->sci, dev, inta->ti_sci_id,
618+ TI_SCI_RESASG_SUBTYPE_IA_VINT);
558619 if (IS_ERR(inta->vint)) {
559620 dev_err(dev, "VINT resource allocation failed\n");
560621 return PTR_ERR(inta->vint);
561622 }
562623
563− inta->global_event = devm_ti_sci_get_of_resource(inta->sci, dev, pdev->id,
564− "ti,sci-rm-range-global-event");
624+ inta->global_event = devm_ti_sci_get_resource(inta->sci, dev, inta->ti_sci_id,
625+ TI_SCI_RESASG_SUBTYPE_GLOBAL_EVENT_SEVT);
565626 if (IS_ERR(inta->global_event)) {
566627 dev_err(dev, "Global event resource allocation failed\n");
567628 return PTR_ERR(inta->global_event);
@@ -592,6 +653,8 @@ static int ti_sci_inta_irq_domain_probe(struct platform_device *pdev) · 24 unmodified lines
592653 INIT_LIST_HEAD(&inta->vint_list);
593654 mutex_init(&inta->vint_mutex);
594655
656+ dev_info(dev, "Interrupt Aggregator domain %d created\n", pdev->id);
657+
595658 return 0;
596659 }
597660
drivers/irqchip/irq-ti-sci-intr.c+93−59
@@ -17,29 +17,20 @@ · 16 unmodified lines
1717 #include <linux/of_irq.h>
1818 #include <linux/soc/ti/ti_sci_protocol.h>
1919
20−#define TI_SCI_DEV_ID_MASK 0xffff
21−#define TI_SCI_DEV_ID_SHIFT 16
22−#define TI_SCI_IRQ_ID_MASK 0xffff
23−#define TI_SCI_IRQ_ID_SHIFT 0
24−#define HWIRQ_TO_DEVID(hwirq) (((hwirq) >> (TI_SCI_DEV_ID_SHIFT)) & \
25− (TI_SCI_DEV_ID_MASK))
26−#define HWIRQ_TO_IRQID(hwirq) ((hwirq) & (TI_SCI_IRQ_ID_MASK))
27−#define TO_HWIRQ(dev, index) ((((dev) & TI_SCI_DEV_ID_MASK) << \
28− TI_SCI_DEV_ID_SHIFT) | \
29− ((index) & TI_SCI_IRQ_ID_MASK))
30−
3120 /**
3221 * struct ti_sci_intr_irq_domain - Structure representing a TISCI based
3322 * Interrupt Router IRQ domain.
3423 * @sci: Pointer to TISCI handle
35− * @dst_irq: TISCI resource pointer representing GIC irq controller.
36− * @dst_id: TISCI device ID of the GIC irq controller.
24+ * @out_irqs: TISCI resource pointer representing INTR irqs.
25+ * @dev: Struct device pointer.
26+ * @ti_sci_id: TI-SCI device identifier
3727 * @type: Specifies the trigger type supported by this Interrupt Router
3828 */
3929 struct ti_sci_intr_irq_domain {
4030 const struct ti_sci_handle *sci;
41− struct ti_sci_resource *dst_irq;
42− u32 dst_id;
31+ struct ti_sci_resource *out_irqs;
32+ struct device *dev;
33+ u32 ti_sci_id;
4334 u32 type;
4435 };
4536
@@ -70,15 +61,44 @@ static int ti_sci_intr_irq_domain_translate(struct irq_domain *domain, · 24 unmodified lines
7061 {
7162 struct ti_sci_intr_irq_domain *intr = domain->host_data;
7263
73− if (fwspec->param_count != 2)
64+ if (fwspec->param_count != 1)
7465 return -EINVAL;
7566
76− *hwirq = TO_HWIRQ(fwspec->param[0], fwspec->param[1]);
67+ *hwirq = fwspec->param[0];
7768 *type = intr->type;
7869
7970 return 0;
8071 }
8172
73+/**
74+ * ti_sci_intr_xlate_irq() - Translate hwirq to parent's hwirq.
75+ * @intr: IRQ domain corresponding to Interrupt Router
76+ * @irq: Hardware irq corresponding to the above irq domain
77+ *
78+ * Return parent irq number if translation is available else -ENOENT.
79+ */
80+static int ti_sci_intr_xlate_irq(struct ti_sci_intr_irq_domain *intr, u32 irq)
81+{
82+ struct device_node *np = dev_of_node(intr->dev);
83+ u32 base, pbase, size, len;
84+ const __be32 *range;
85+
86+ range = of_get_property(np, "ti,interrupt-ranges", &len);
87+ if (!range)
88+ return irq;
89+
90+ for (len /= sizeof(*range); len >= 3; len -= 3) {
91+ base = be32_to_cpu(*range++);
92+ pbase = be32_to_cpu(*range++);
93+ size = be32_to_cpu(*range++);
94+
95+ if (base <= irq && irq < base + size)
96+ return irq - base + pbase;
97+ }
98+
99+ return -ENOENT;
100+}
101+
82102 /**
83103 * ti_sci_intr_irq_domain_free() - Free the specified IRQs from the domain.
84104 * @domain: Domain to which the irqs belong
@@ -89,66 +109,76 @@ static void ti_sci_intr_irq_domain_free(struct irq_domain *domain, · 4 unmodified lines
89109 unsigned int virq, unsigned int nr_irqs)
90110 {
91111 struct ti_sci_intr_irq_domain *intr = domain->host_data;
92− struct irq_data *data, *parent_data;
93− u16 dev_id, irq_index;
112+ struct irq_data *data;
113+ int out_irq;
94114
95− parent_data = irq_domain_get_irq_data(domain->parent, virq);
96115 data = irq_domain_get_irq_data(domain, virq);
97− irq_index = HWIRQ_TO_IRQID(data->hwirq);
98− dev_id = HWIRQ_TO_DEVID(data->hwirq);
116+ out_irq = (uintptr_t)data->chip_data;
99117
100− intr->sci->ops.rm_irq_ops.free_irq(intr->sci, dev_id, irq_index,
101− intr->dst_id, parent_data->hwirq);
102− ti_sci_release_resource(intr->dst_irq, parent_data->hwirq);
118+ intr->sci->ops.rm_irq_ops.free_irq(intr->sci,
119+ intr->ti_sci_id, data->hwirq,
120+ intr->ti_sci_id, out_irq);
121+ ti_sci_release_resource(intr->out_irqs, out_irq);
103122 irq_domain_free_irqs_parent(domain, virq, 1);
104123 irq_domain_reset_irq_data(data);
105124 }
106125
107126 /**
108− * ti_sci_intr_alloc_gic_irq() - Allocate GIC specific IRQ
127+ * ti_sci_intr_alloc_parent_irq() - Allocate parent IRQ
109128 * @domain: Pointer to the interrupt router IRQ domain
110129 * @virq: Corresponding Linux virtual IRQ number
111130 * @hwirq: Corresponding hwirq for the IRQ within this IRQ domain
112131 *
113− * Returns 0 if all went well else appropriate error pointer.
132+ * Returns parent irq if all went well else appropriate error pointer.
114133 */
115−static int ti_sci_intr_alloc_gic_irq(struct irq_domain *domain,
116− unsigned int virq, u32 hwirq)
134+static int ti_sci_intr_alloc_parent_irq(struct irq_domain *domain,
135+ unsigned int virq, u32 hwirq)
117136 {
118137 struct ti_sci_intr_irq_domain *intr = domain->host_data;
138+ struct device_node *parent_node;
119139 struct irq_fwspec fwspec;
120− u16 dev_id, irq_index;
121− u16 dst_irq;
122− int err;
123−
124− dev_id = HWIRQ_TO_DEVID(hwirq);
125− irq_index = HWIRQ_TO_IRQID(hwirq);
140+ u16 out_irq, p_hwirq;
141+ int err = 0;
126142
127− dst_irq = ti_sci_get_free_resource(intr->dst_irq);
128− if (dst_irq == TI_SCI_RESOURCE_NULL)
143+ out_irq = ti_sci_get_free_resource(intr->out_irqs);
144+ if (out_irq == TI_SCI_RESOURCE_NULL)
129145 return -EINVAL;
130146
131− fwspec.fwnode = domain->parent->fwnode;
132− fwspec.param_count = 3;
133− fwspec.param[0] = 0; /* SPI */
134− fwspec.param[1] = dst_irq - 32; /* SPI offset */
135− fwspec.param[2] = intr->type;
147+ p_hwirq = ti_sci_intr_xlate_irq(intr, out_irq);
148+ if (p_hwirq < 0)
149+ goto err_irqs;
150+
151+ parent_node = of_irq_find_parent(dev_of_node(intr->dev));
152+ fwspec.fwnode = of_node_to_fwnode(parent_node);
153+
154+ if (of_device_is_compatible(parent_node, "arm,gic-v3")) {
155+ /* Parent is GIC */
156+ fwspec.param_count = 3;
157+ fwspec.param[0] = 0; /* SPI */
158+ fwspec.param[1] = p_hwirq - 32; /* SPI offset */
159+ fwspec.param[2] = intr->type;
160+ } else {
161+ /* Parent is Interrupt Router */
162+ fwspec.param_count = 1;
163+ fwspec.param[0] = p_hwirq;
164+ }
136165
137166 err = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec);
138167 if (err)
139168 goto err_irqs;
140169
141− err = intr->sci->ops.rm_irq_ops.set_irq(intr->sci, dev_id, irq_index,
142− intr->dst_id, dst_irq);
170+ err = intr->sci->ops.rm_irq_ops.set_irq(intr->sci,
171+ intr->ti_sci_id, hwirq,
172+ intr->ti_sci_id, out_irq);
143173 if (err)
144174 goto err_msg;
145175
146− return 0;
176+ return p_hwirq;
147177
148178 err_msg:
149179 irq_domain_free_irqs_parent(domain, virq, 1);
150180 err_irqs:
151− ti_sci_release_resource(intr->dst_irq, dst_irq);
181+ ti_sci_release_resource(intr->out_irqs, out_irq);
152182 return err;
153183 }
154184
@@ -168,18 +198,19 @@ static int ti_sci_intr_irq_domain_alloc(struct irq_domain *domain, · 13 unmodified lines
168198 struct irq_fwspec *fwspec = data;
169199 unsigned long hwirq;
170200 unsigned int flags;
171− int err;
201+ int err, p_hwirq;
172202
173203 err = ti_sci_intr_irq_domain_translate(domain, fwspec, &hwirq, &flags);
174204 if (err)
175205 return err;
176206
177− err = ti_sci_intr_alloc_gic_irq(domain, virq, hwirq);
178− if (err)
179− return err;
207+ p_hwirq = ti_sci_intr_alloc_parent_irq(domain, virq, hwirq);
208+ if (p_hwirq < 0)
209+ return p_hwirq;
180210
181211 irq_domain_set_hwirq_and_chip(domain, virq, hwirq,
182− &ti_sci_intr_irq_chip, NULL);
212+ &ti_sci_intr_irq_chip,
213+ (void *)(uintptr_t)p_hwirq);
183214
184215 return 0;
185216 }
@@ -214,6 +245,7 @@ static int ti_sci_intr_irq_domain_probe(struct platform_device *pdev) · 28 unmodified lines
214245 if (!intr)
215246 return -ENOMEM;
216247
248+ intr->dev = dev;
217249 ret = of_property_read_u32(dev_of_node(dev), "ti,intr-trigger-type",
218250 &intr->type);
219251 if (ret) {
@@ -230,19 +262,19 @@ static int ti_sci_intr_irq_domain_probe(struct platform_device *pdev) · 10 unmodified lines
230262 return ret;
231263 }
232264
233− ret = of_property_read_u32(dev_of_node(dev), "ti,sci-dst-id",
234− &intr->dst_id);
265+ ret = of_property_read_u32(dev_of_node(dev), "ti,sci-dev-id",
266+ &intr->ti_sci_id);
235267 if (ret) {
236− dev_err(dev, "missing 'ti,sci-dst-id' property\n");
268+ dev_err(dev, "missing 'ti,sci-dev-id' property\n");
237269 return -EINVAL;
238270 }
239271
240− intr->dst_irq = devm_ti_sci_get_of_resource(intr->sci, dev,
241− intr->dst_id,
242− "ti,sci-rm-range-girq");
243− if (IS_ERR(intr->dst_irq)) {
272+ intr->out_irqs = devm_ti_sci_get_resource(intr->sci, dev,
273+ intr->ti_sci_id,
274+ TI_SCI_RESASG_SUBTYPE_IR_OUTPUT);
275+ if (IS_ERR(intr->out_irqs)) {
244276 dev_err(dev, "Destination irq resource allocation failed\n");
245− return PTR_ERR(intr->dst_irq);
277+ return PTR_ERR(intr->out_irqs);
246278 }
247279
248280 domain = irq_domain_add_hierarchy(parent_domain, 0, 0, dev_of_node(dev),
@@ -252,6 +284,8 @@ static int ti_sci_intr_irq_domain_probe(struct platform_device *pdev) · 3 unmodified lines
252284 return -ENOMEM;
253285 }
254286
287+ dev_info(dev, "Interrupt Router %d domain created\n", intr->ti_sci_id);
288+
255289 return 0;
256290 }
257291
drivers/irqchip/irq-vic.c+1−1
@@ -455,7 +455,7 @@ static void __init __vic_init(void __iomem *base, int parent_irq, int irq_start, · 454 unmodified lines
455455 return;
456456 default:
457457 printk(KERN_WARNING "VIC: unknown vendor, continuing anyways\n");
458− /* fall through */
458+ fallthrough;
459459 case AMBA_VENDOR_ARM:
460460 break;
461461 }
drivers/irqchip/irqchip.c+1−1
@@ -52,7 +52,7 @@ int platform_irqchip_probe(struct platform_device *pdev) · 51 unmodified lines
5252 * interrupt controller. The actual initialization callback of this
5353 * interrupt controller can check for specific domains as necessary.
5454 */
55− if (par_np && !irq_find_matching_host(np, DOMAIN_BUS_ANY))
55+ if (par_np && !irq_find_matching_host(par_np, DOMAIN_BUS_ANY))
5656 return -EPROBE_DEFER;
5757
5858 return irq_init_cb(np, par_np);
drivers/irqchip/qcom-pdc.c+1−7
@@ -11,11 +11,9 @@ · 10 unmodified lines
1111 #include <linux/irqdomain.h>
1212 #include <linux/io.h>
1313 #include <linux/kernel.h>
14−#include <linux/module.h>
1514 #include <linux/of.h>
1615 #include <linux/of_address.h>
1716 #include <linux/of_device.h>
18−#include <linux/of_irq.h>
1917 #include <linux/soc/qcom/irq.h>
2018 #include <linux/spinlock.h>
2119 #include <linux/slab.h>
@@ -432,8 +430,4 @@ fail: · 410 unmodified lines
432430 return ret;
433431 }
434432
435−IRQCHIP_PLATFORM_DRIVER_BEGIN(qcom_pdc)
436−IRQCHIP_MATCH("qcom,pdc", qcom_pdc_init)
437−IRQCHIP_PLATFORM_DRIVER_END(qcom_pdc)
438−MODULE_DESCRIPTION("Qualcomm Technologies, Inc. Power Domain Controller");
439−MODULE_LICENSE("GPL v2");
433+IRQCHIP_DECLARE(qcom_pdc, "qcom,pdc", qcom_pdc_init);
drivers/isdn/hardware/mISDN/avmfritz.c+1−1
@@ -348,7 +348,7 @@ modehdlc(struct bchannel *bch, int protocol) · 347 unmodified lines
348348 switch (protocol) {
349349 case -1: /* used for init */
350350 bch->state = -1;
351− /* fall through */
351+ fallthrough;
352352 case ISDN_P_NONE:
353353 if (bch->state == ISDN_P_NONE)
354354 break;
drivers/isdn/hardware/mISDN/hfc_multi_8xx.h+0−1
@@ -121,7 +121,6 @@ setup_embedded(struct hfc_multi *hc, struct hm_map *m) · 120 unmodified lines
121121 case HFC_IO_MODE_EMBSD:
122122 test_and_set_bit(HFC_CHIP_EMBSD, &hc->chip);
123123 hc->slots = 128; /* required */
124− /* fall through */
125124 hc->HFC_outb = HFC_outb_embsd;
126125 hc->HFC_inb = HFC_inb_embsd;
127126 hc->HFC_inw = HFC_inw_embsd;
drivers/isdn/hardware/mISDN/hfcpci.c+1−1
@@ -1280,7 +1280,7 @@ mode_hfcpci(struct bchannel *bch, int bc, int protocol) · 1279 unmodified lines
12801280 case (-1): /* used for init */
12811281 bch->state = -1;
12821282 bch->nr = bc;
1283− /* fall through */
1283+ fallthrough;
12841284 case (ISDN_P_NONE):
12851285 if (bch->state == ISDN_P_NONE)
12861286 return 0;
drivers/isdn/hardware/mISDN/hfcsusb.c+1−1
@@ -695,7 +695,7 @@ hfcsusb_setup_bch(struct bchannel *bch, int protocol) · 694 unmodified lines
695695 switch (protocol) {
696696 case (-1): /* used for init */
697697 bch->state = -1;
698− /* fall through */
698+ fallthrough;
699699 case (ISDN_P_NONE):
700700 if (bch->state == ISDN_P_NONE)
701701 return 0; /* already in idle state */
drivers/isdn/hardware/mISDN/isdnhdlc.c+1−1
@@ -397,7 +397,7 @@ int isdnhdlc_encode(struct isdnhdlc_vars *hdlc, const u8 *src, u16 slen, · 396 unmodified lines
397397 dsize--;
398398 break;
399399 }
400− /* fall through */
400+ fallthrough;
401401 case HDLC_SENDFLAG_ONE:
402402 if (hdlc->bit_shift == 8) {
403403 hdlc->cbin = hdlc->ffvalue >>
drivers/isdn/hardware/mISDN/mISDNinfineon.c+1−1
@@ -875,7 +875,7 @@ release_card(struct inf_hw *card) { · 874 unmodified lines
875875 release_card(card->sc[i]);
876876 card->sc[i] = NULL;
877877 }
878− /* fall through */
878+ fallthrough;
879879 default:
880880 pci_disable_device(card->pdev);
881881 pci_set_drvdata(card->pdev, NULL);
drivers/isdn/hardware/mISDN/mISDNisar.c+4−4
@@ -957,7 +957,7 @@ isar_pump_statev_fax(struct isar_ch *ch, u8 devt) { · 956 unmodified lines
957957 break;
958958 case PCTRL_CMD_FTM:
959959 p1 = 2;
960− /* fall through */
960+ fallthrough;
961961 case PCTRL_CMD_FTH:
962962 send_mbox(ch->is, dps | ISAR_HIS_PUMPCTRL,
963963 PCTRL_CMD_SILON, 1, &p1);
@@ -1163,7 +1163,7 @@ setup_pump(struct isar_ch *ch) { · 199 unmodified lines
11631163 send_mbox(ch->is, dps | ISAR_HIS_PUMPCFG,
11641164 PMOD_DTMF, 1, param);
11651165 }
1166− /* fall through */
1166+ fallthrough;
11671167 case ISDN_P_B_MODEM_ASYNC:
11681168 ctrl = PMOD_DATAMODEM;
11691169 if (test_bit(FLG_ORIGIN, &ch->bch.Flags)) {
@@ -1255,7 +1255,7 @@ setup_iom2(struct isar_ch *ch) { · 85 unmodified lines
12551255 case ISDN_P_B_MODEM_ASYNC:
12561256 case ISDN_P_B_T30_FAX:
12571257 cmsb |= IOM_CTRL_RCV;
1258− /* fall through */
1258+ fallthrough;
12591259 case ISDN_P_B_L2DTMF:
12601260 if (test_bit(FLG_DTMFSEND, &ch->bch.Flags))
12611261 cmsb |= IOM_CTRL_RCV;
@@ -1548,7 +1548,7 @@ isar_l2l1(struct mISDNchannel *ch, struct sk_buff *skb) · 286 unmodified lines
15481548 ich->is->name, hh->id);
15491549 ret = -EINVAL;
15501550 }
1551− /* fall through */
1551+ fallthrough;
15521552 default:
15531553 pr_info("%s: %s unknown prim(%x,%x)\n",
15541554 ich->is->name, __func__, hh->prim, hh->id);
drivers/isdn/mISDN/stack.c+1−1
@@ -528,7 +528,7 @@ create_l2entity(struct mISDNdevice *dev, struct mISDNchannel *ch, · 527 unmodified lines
528528 rq.protocol = ISDN_P_NT_S0;
529529 if (dev->Dprotocols & (1 << ISDN_P_NT_E1))
530530 rq.protocol = ISDN_P_NT_E1;
531− /* fall through */
531+ fallthrough;
532532 case ISDN_P_LAPD_TE:
533533 ch->recv = mISDN_queue_message;
534534 ch->peer = &dev->D.st->own;
drivers/lightnvm/pblk-core.c+1−1
@@ -301,7 +301,7 @@ void pblk_free_rqd(struct pblk *pblk, struct nvm_rq *rqd, int type) · 300 unmodified lines
301301 switch (type) {
302302 case PBLK_WRITE:
303303 kfree(((struct pblk_c_ctx *)nvm_rq_to_pdu(rqd))->lun_bitmap);
304− /* fall through */
304+ fallthrough;
305305 case PBLK_WRITE_INT:
306306 pool = &pblk->w_rq_pool;
307307 break;
drivers/macintosh/adbhid.c+1−1
@@ -881,7 +881,7 @@ adbhid_input_register(int id, int default_id, int original_handler_id, · 880 unmodified lines
881881 }
882882 if (hid->name[0])
883883 break;
884− /* else fall through */
884+ fallthrough;
885885
886886 default:
887887 pr_info("Trying to register unknown ADB device to input layer.\n");
drivers/macintosh/smu.c+1−1
@@ -852,7 +852,7 @@ int smu_queue_i2c(struct smu_i2c_cmd *cmd) · 851 unmodified lines
852852 break;
853853 case SMU_I2C_TRANSFER_COMBINED:
854854 cmd->info.devaddr &= 0xfe;
855− /* fall through */
855+ fallthrough;
856856 case SMU_I2C_TRANSFER_STDSUB:
857857 if (cmd->info.sublen > 3)
858858 return -EINVAL;
drivers/md/bcache/journal.c+1−1
@@ -608,7 +608,7 @@ static void do_journal_discard(struct cache *ca) · 607 unmodified lines
608608 ca->sb.njournal_buckets;
609609
610610 atomic_set(&ja->discard_in_flight, DISCARD_READY);
611− /* fallthrough */
611+ fallthrough;
612612
613613 case DISCARD_READY:
614614 if (ja->discard_idx == ja->last_idx)
drivers/md/bcache/util.c+7−7
@@ -33,27 +33,27 @@ int bch_ ## name ## _h(const char *cp, type *res) \ · 32 unmodified lines
3333 case 'y': \
3434 case 'z': \
3535 u++; \
36− /* fall through */ \
36+ fallthrough; \
3737 case 'e': \
3838 u++; \
39− /* fall through */ \
39+ fallthrough; \
4040 case 'p': \
4141 u++; \
42− /* fall through */ \
42+ fallthrough; \
4343 case 't': \
4444 u++; \
45− /* fall through */ \
45+ fallthrough; \
4646 case 'g': \
4747 u++; \
48− /* fall through */ \
48+ fallthrough; \
4949 case 'm': \
5050 u++; \
51− /* fall through */ \
51+ fallthrough; \
5252 case 'k': \
5353 u++; \
5454 if (e++ == cp) \
5555 return -EINVAL; \
56− /* fall through */ \
56+ fallthrough; \
5757 case '\n': \
5858 case '\0': \
5959 if (*e == '\n') \
drivers/md/dm-cache-metadata.c+6−2
@@ -537,12 +537,16 @@ static int __create_persistent_data_objects(struct dm_cache_metadata *cmd, · 536 unmodified lines
537537 CACHE_MAX_CONCURRENT_LOCKS);
538538 if (IS_ERR(cmd->bm)) {
539539 DMERR("could not create block manager");
540− return PTR_ERR(cmd->bm);
540+ r = PTR_ERR(cmd->bm);
541+ cmd->bm = NULL;
542+ return r;
541543 }
542544
543545 r = __open_or_format_metadata(cmd, may_format_device);
544− if (r)
546+ if (r) {
545547 dm_block_manager_destroy(cmd->bm);
548+ cmd->bm = NULL;
549+ }
546550
547551 return r;
548552 }
drivers/md/dm-crypt.c+3−3
@@ -739,7 +739,7 @@ static int crypt_iv_eboiv_gen(struct crypt_config *cc, u8 *iv, · 738 unmodified lines
739739 u8 buf[MAX_CIPHER_BLOCKSIZE] __aligned(__alignof__(__le64));
740740 struct skcipher_request *req;
741741 struct scatterlist src, dst;
742− struct crypto_wait wait;
742+ DECLARE_CRYPTO_WAIT(wait);
743743 int err;
744744
745745 req = skcipher_request_alloc(any_tfm(cc), GFP_NOIO);
@@ -936,7 +936,7 @@ static int crypt_iv_elephant(struct crypt_config *cc, struct dm_crypt_request *d · 190 unmodified lines
936936 u8 *es, *ks, *data, *data2, *data_offset;
937937 struct skcipher_request *req;
938938 struct scatterlist *sg, *sg2, src, dst;
939− struct crypto_wait wait;
939+ DECLARE_CRYPTO_WAIT(wait);
940940 int i, r;
941941
942942 req = skcipher_request_alloc(elephant->tfm, GFP_NOIO);
@@ -1552,7 +1552,7 @@ static blk_status_t crypt_convert(struct crypt_config *cc, · 609 unmodified lines
15521552 case -EBUSY:
15531553 wait_for_completion(&ctx->restart);
15541554 reinit_completion(&ctx->restart);
1555− /* fall through */
1555+ fallthrough;
15561556 /*
15571557 * The request is queued and processed asynchronously,
15581558 * completion function kcryptd_async_done() will be called.
drivers/md/dm-integrity.c+12−0
@@ -2487,6 +2487,7 @@ next_chunk: · 2486 unmodified lines
24872487 range.logical_sector = le64_to_cpu(ic->sb->recalc_sector);
24882488 if (unlikely(range.logical_sector >= ic->provided_data_sectors)) {
24892489 if (ic->mode == 'B') {
2490+ block_bitmap_op(ic, ic->recalc_bitmap, 0, ic->provided_data_sectors, BITMAP_OP_CLEAR);
24902491 DEBUG_print("queue_delayed_work: bitmap_flush_work\n");
24912492 queue_delayed_work(ic->commit_wq, &ic->bitmap_flush_work, 0);
24922493 }
@@ -2564,6 +2565,17 @@ next_chunk: · 71 unmodified lines
25642565 goto err;
25652566 }
25662567
2568+ if (ic->mode == 'B') {
2569+ sector_t start, end;
2570+ start = (range.logical_sector >>
2571+ (ic->sb->log2_sectors_per_block + ic->log2_blocks_per_bitmap_bit)) <<
2572+ (ic->sb->log2_sectors_per_block + ic->log2_blocks_per_bitmap_bit);
2573+ end = ((range.logical_sector + range.n_sectors) >>
2574+ (ic->sb->log2_sectors_per_block + ic->log2_blocks_per_bitmap_bit)) <<
2575+ (ic->sb->log2_sectors_per_block + ic->log2_blocks_per_bitmap_bit);
2576+ block_bitmap_op(ic, ic->recalc_bitmap, start, end - start, BITMAP_OP_CLEAR);
2577+ }
2578+
25672579 advance_and_next:
25682580 cond_resched();
25692581
drivers/md/dm-mpath.c+16−8
@@ -1287,17 +1287,25 @@ static void multipath_wait_for_pg_init_completion(struct multipath *m) · 1286 unmodified lines
12871287 static void flush_multipath_work(struct multipath *m)
12881288 {
12891289 if (m->hw_handler_name) {
1290− set_bit(MPATHF_PG_INIT_DISABLED, &m->flags);
1291− smp_mb__after_atomic();
1290+ unsigned long flags;
1291+
1292+ if (!atomic_read(&m->pg_init_in_progress))
1293+ goto skip;
1294+
1295+ spin_lock_irqsave(&m->lock, flags);
1296+ if (atomic_read(&m->pg_init_in_progress) &&
1297+ !test_and_set_bit(MPATHF_PG_INIT_DISABLED, &m->flags)) {
1298+ spin_unlock_irqrestore(&m->lock, flags);
12921299
1293− if (atomic_read(&m->pg_init_in_progress))
12941300 flush_workqueue(kmpath_handlerd);
1295− multipath_wait_for_pg_init_completion(m);
1301+ multipath_wait_for_pg_init_completion(m);
12961302
1297− clear_bit(MPATHF_PG_INIT_DISABLED, &m->flags);
1298− smp_mb__after_atomic();
1303+ spin_lock_irqsave(&m->lock, flags);
1304+ clear_bit(MPATHF_PG_INIT_DISABLED, &m->flags);
1305+ }
1306+ spin_unlock_irqrestore(&m->lock, flags);
12991307 }
1300−
1308+skip:
13011309 if (m->queue_mode == DM_TYPE_BIO_BASED)
13021310 flush_work(&m->process_queued_bios);
13031311 flush_work(&m->trigger_event);
@@ -1554,7 +1562,7 @@ static void pg_init_done(void *data, int errors) · 250 unmodified lines
15541562 case SCSI_DH_RETRY:
15551563 /* Wait before retrying. */
15561564 delay_retry = true;
1557− /* fall through */
1565+ fallthrough;
15581566 case SCSI_DH_IMM_RETRY:
15591567 case SCSI_DH_RES_TEMP_UNAVAIL:
15601568 if (pg_init_limit_reached(m, pgpath))
drivers/md/dm-thin-metadata.c+7−3
@@ -739,12 +739,16 @@ static int __create_persistent_data_objects(struct dm_pool_metadata *pmd, bool f · 738 unmodified lines
739739 THIN_MAX_CONCURRENT_LOCKS);
740740 if (IS_ERR(pmd->bm)) {
741741 DMERR("could not create block manager");
742− return PTR_ERR(pmd->bm);
742+ r = PTR_ERR(pmd->bm);
743+ pmd->bm = NULL;
744+ return r;
743745 }
744746
745747 r = __open_or_format_metadata(pmd, format_device);
746− if (r)
748+ if (r) {
747749 dm_block_manager_destroy(pmd->bm);
750+ pmd->bm = NULL;
751+ }
748752
749753 return r;
750754 }
@@ -954,7 +958,7 @@ int dm_pool_metadata_close(struct dm_pool_metadata *pmd) · 203 unmodified lines
954958 }
955959
956960 pmd_write_lock_in_core(pmd);
957− if (!dm_bm_is_read_only(pmd->bm) && !pmd->fail_io) {
961+ if (!pmd->fail_io && !dm_bm_is_read_only(pmd->bm)) {
958962 r = __commit_transaction(pmd);
959963 if (r < 0)
960964 DMWARN("%s: __commit_transaction() failed, error = %d",
drivers/md/dm-writecache.c+10−2
@@ -231,6 +231,7 @@ static int persistent_memory_claim(struct dm_writecache *wc) · 230 unmodified lines
231231 pfn_t pfn;
232232 int id;
233233 struct page **pages;
234+ sector_t offset;
234235
235236 wc->memory_vmapped = false;
236237
@@ -245,9 +246,16 @@ static int persistent_memory_claim(struct dm_writecache *wc) · 8 unmodified lines
245246 goto err1;
246247 }
247248
249+ offset = get_start_sect(wc->ssd_dev->bdev);
250+ if (offset & (PAGE_SIZE / 512 - 1)) {
251+ r = -EINVAL;
252+ goto err1;
253+ }
254+ offset >>= PAGE_SHIFT - 9;
255+
248256 id = dax_read_lock();
249257
250− da = dax_direct_access(wc->ssd_dev->dax_dev, 0, p, &wc->memory_map, &pfn);
258+ da = dax_direct_access(wc->ssd_dev->dax_dev, offset, p, &wc->memory_map, &pfn);
251259 if (da < 0) {
252260 wc->memory_map = NULL;
253261 r = da;
@@ -269,7 +277,7 @@ static int persistent_memory_claim(struct dm_writecache *wc) · 15 unmodified lines
269277 i = 0;
270278 do {
271279 long daa;
272− daa = dax_direct_access(wc->ssd_dev->dax_dev, i, p - i,
280+ daa = dax_direct_access(wc->ssd_dev->dax_dev, offset + i, p - i,
273281 NULL, &pfn);
274282 if (daa <= 0) {
275283 r = daa ? daa : -EINVAL;
drivers/md/dm.c+1−1
@@ -1021,7 +1021,7 @@ static void clone_endio(struct bio *bio) · 1020 unmodified lines
10211021 switch (r) {
10221022 case DM_ENDIO_REQUEUE:
10231023 error = BLK_STS_DM_REQUEUE;
1024− /*FALLTHRU*/
1024+ fallthrough;
10251025 case DM_ENDIO_DONE:
10261026 break;
10271027 case DM_ENDIO_INCOMPLETE:
drivers/md/md-autodetect.c+2−2
@@ -102,10 +102,10 @@ static int __init md_setup(char *str) · 101 unmodified lines
102102 pername = "raid0";
103103 break;
104104 }
105− /* FALL THROUGH */
105+ fallthrough;
106106 case 1: /* the first device is numeric */
107107 str = str1;
108− /* FALL THROUGH */
108+ fallthrough;
109109 case 0:
110110 md_setup_args[ent].level = LEVEL_NONE;
111111 pername="super-block";
drivers/md/md-bitmap.c+1−1
@@ -1433,7 +1433,7 @@ int md_bitmap_startwrite(struct bitmap *bitmap, sector_t offset, unsigned long s · 1432 unmodified lines
14331433 case 0:
14341434 md_bitmap_file_set_bit(bitmap, offset);
14351435 md_bitmap_count_page(&bitmap->counts, offset, 1);
1436− /* fall through */
1436+ fallthrough;
14371437 case 1:
14381438 *bmc = 2;
14391439 }
drivers/md/persistent-data/dm-block-manager.c+8−6
@@ -493,7 +493,7 @@ int dm_bm_write_lock(struct dm_block_manager *bm, · 492 unmodified lines
493493 void *p;
494494 int r;
495495
496− if (bm->read_only)
496+ if (dm_bm_is_read_only(bm))
497497 return -EPERM;
498498
499499 p = dm_bufio_read(bm->bufio, b, (struct dm_buffer **) result);
@@ -562,7 +562,7 @@ int dm_bm_write_lock_zero(struct dm_block_manager *bm, · 62 unmodified lines
562562 struct buffer_aux *aux;
563563 void *p;
564564
565− if (bm->read_only)
565+ if (dm_bm_is_read_only(bm))
566566 return -EPERM;
567567
568568 p = dm_bufio_new(bm->bufio, b, (struct dm_buffer **) result);
@@ -602,7 +602,7 @@ EXPORT_SYMBOL_GPL(dm_bm_unlock); · 33 unmodified lines
602602
603603 int dm_bm_flush(struct dm_block_manager *bm)
604604 {
605− if (bm->read_only)
605+ if (dm_bm_is_read_only(bm))
606606 return -EPERM;
607607
608608 return dm_bufio_write_dirty_buffers(bm->bufio);
@@ -616,19 +616,21 @@ void dm_bm_prefetch(struct dm_block_manager *bm, dm_block_t b) · 7 unmodified lines
616616
617617 bool dm_bm_is_read_only(struct dm_block_manager *bm)
618618 {
619− return bm->read_only;
619+ return (bm ? bm->read_only : true);
620620 }
621621 EXPORT_SYMBOL_GPL(dm_bm_is_read_only);
622622
623623 void dm_bm_set_read_only(struct dm_block_manager *bm)
624624 {
625− bm->read_only = true;
625+ if (bm)
626+ bm->read_only = true;
626627 }
627628 EXPORT_SYMBOL_GPL(dm_bm_set_read_only);
628629
629630 void dm_bm_set_read_write(struct dm_block_manager *bm)
630631 {
631− bm->read_only = false;
632+ if (bm)
633+ bm->read_only = false;
632634 }
633635 EXPORT_SYMBOL_GPL(dm_bm_set_read_write);
634636
drivers/md/raid5.c+7−4
@@ -4083,7 +4083,7 @@ static void handle_parity_checks5(struct r5conf *conf, struct stripe_head *sh, · 4082 unmodified lines
40834083 break;
40844084 }
40854085 dev = &sh->dev[s->failed_num[0]];
4086− /* fall through */
4086+ fallthrough;
40874087 case check_state_compute_result:
40884088 sh->check_state = check_state_idle;
40894089 if (!dev)
@@ -4214,7 +4214,7 @@ static void handle_parity_checks6(struct r5conf *conf, struct stripe_head *sh, · 124 unmodified lines
42144214
42154215 /* we have 2-disk failure */
42164216 BUG_ON(s->failed != 2);
4217− /* fall through */
4217+ fallthrough;
42184218 case check_state_compute_result:
42194219 sh->check_state = check_state_idle;
42204220
@@ -6514,9 +6514,12 @@ raid5_store_stripe_size(struct mddev *mddev, const char *page, size_t len) · 2293 unmodified lines
65146514
65156515 /*
65166516 * The value should not be bigger than PAGE_SIZE. It requires to
6517− * be multiple of DEFAULT_STRIPE_SIZE.
6517+ * be multiple of DEFAULT_STRIPE_SIZE and the value should be power
6518+ * of two.
65186519 */
6519− if (new % DEFAULT_STRIPE_SIZE != 0 || new > PAGE_SIZE || new == 0)
6520+ if (new % DEFAULT_STRIPE_SIZE != 0 ||
6521+ new > PAGE_SIZE || new == 0 ||
6522+ new != roundup_pow_of_two(new))
65206523 return -EINVAL;
65216524
65226525 err = mddev_lock(mddev);
drivers/media/common/v4l2-tpg/v4l2-tpg-core.c+18−18
@@ -210,7 +210,7 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc) · 209 unmodified lines
210210 tpg->vdownsampling[1] = 1;
211211 tpg->hdownsampling[1] = 1;
212212 tpg->planes = 2;
213− /* fall through */
213+ fallthrough;
214214 case V4L2_PIX_FMT_RGB332:
215215 case V4L2_PIX_FMT_RGB565:
216216 case V4L2_PIX_FMT_RGB565X:
@@ -271,7 +271,7 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc) · 54 unmodified lines
271271 case V4L2_PIX_FMT_YUV420M:
272272 case V4L2_PIX_FMT_YVU420M:
273273 tpg->buffers = 3;
274− /* fall through */
274+ fallthrough;
275275 case V4L2_PIX_FMT_YUV420:
276276 case V4L2_PIX_FMT_YVU420:
277277 tpg->vdownsampling[1] = 2;
@@ -284,7 +284,7 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc) · 6 unmodified lines
284284 case V4L2_PIX_FMT_YUV422M:
285285 case V4L2_PIX_FMT_YVU422M:
286286 tpg->buffers = 3;
287− /* fall through */
287+ fallthrough;
288288 case V4L2_PIX_FMT_YUV422P:
289289 tpg->vdownsampling[1] = 1;
290290 tpg->vdownsampling[2] = 1;
@@ -296,7 +296,7 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc) · 5 unmodified lines
296296 case V4L2_PIX_FMT_NV16M:
297297 case V4L2_PIX_FMT_NV61M:
298298 tpg->buffers = 2;
299− /* fall through */
299+ fallthrough;
300300 case V4L2_PIX_FMT_NV16:
301301 case V4L2_PIX_FMT_NV61:
302302 tpg->vdownsampling[1] = 1;
@@ -308,7 +308,7 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc) · 5 unmodified lines
308308 case V4L2_PIX_FMT_NV12M:
309309 case V4L2_PIX_FMT_NV21M:
310310 tpg->buffers = 2;
311− /* fall through */
311+ fallthrough;
312312 case V4L2_PIX_FMT_NV12:
313313 case V4L2_PIX_FMT_NV21:
314314 tpg->vdownsampling[1] = 2;
@@ -1275,7 +1275,7 @@ static void gen_twopix(struct tpg_data *tpg, · 960 unmodified lines
12751275 case V4L2_PIX_FMT_RGB444:
12761276 case V4L2_PIX_FMT_XRGB444:
12771277 alpha = 0;
1278− /* fall through */
1278+ fallthrough;
12791279 case V4L2_PIX_FMT_YUV444:
12801280 case V4L2_PIX_FMT_ARGB444:
12811281 buf[0][offset] = (g_u_s << 4) | b_v;
@@ -1283,21 +1283,21 @@ static void gen_twopix(struct tpg_data *tpg, · 1 unmodified line
12831283 break;
12841284 case V4L2_PIX_FMT_RGBX444:
12851285 alpha = 0;
1286− /* fall through */
1286+ fallthrough;
12871287 case V4L2_PIX_FMT_RGBA444:
12881288 buf[0][offset] = (b_v << 4) | (alpha >> 4);
12891289 buf[0][offset + 1] = (r_y_h << 4) | g_u_s;
12901290 break;
12911291 case V4L2_PIX_FMT_XBGR444:
12921292 alpha = 0;
1293− /* fall through */
1293+ fallthrough;
12941294 case V4L2_PIX_FMT_ABGR444:
12951295 buf[0][offset] = (g_u_s << 4) | r_y_h;
12961296 buf[0][offset + 1] = (alpha & 0xf0) | b_v;
12971297 break;
12981298 case V4L2_PIX_FMT_BGRX444:
12991299 alpha = 0;
1300− /* fall through */
1300+ fallthrough;
13011301 case V4L2_PIX_FMT_BGRA444:
13021302 buf[0][offset] = (r_y_h << 4) | (alpha >> 4);
13031303 buf[0][offset + 1] = (b_v << 4) | g_u_s;
@@ -1305,7 +1305,7 @@ static void gen_twopix(struct tpg_data *tpg, · 1 unmodified line
13051305 case V4L2_PIX_FMT_RGB555:
13061306 case V4L2_PIX_FMT_XRGB555:
13071307 alpha = 0;
1308− /* fall through */
1308+ fallthrough;
13091309 case V4L2_PIX_FMT_YUV555:
13101310 case V4L2_PIX_FMT_ARGB555:
13111311 buf[0][offset] = (g_u_s << 5) | b_v;
@@ -1314,7 +1314,7 @@ static void gen_twopix(struct tpg_data *tpg, · 2 unmodified lines
13141314 break;
13151315 case V4L2_PIX_FMT_RGBX555:
13161316 alpha = 0;
1317− /* fall through */
1317+ fallthrough;
13181318 case V4L2_PIX_FMT_RGBA555:
13191319 buf[0][offset] = (g_u_s << 6) | (b_v << 1) |
13201320 ((alpha & 0x80) >> 7);
@@ -1322,7 +1322,7 @@ static void gen_twopix(struct tpg_data *tpg, · 1 unmodified line
13221322 break;
13231323 case V4L2_PIX_FMT_XBGR555:
13241324 alpha = 0;
1325− /* fall through */
1325+ fallthrough;
13261326 case V4L2_PIX_FMT_ABGR555:
13271327 buf[0][offset] = (g_u_s << 5) | r_y_h;
13281328 buf[0][offset + 1] = (alpha & 0x80) | (b_v << 2)
@@ -1330,7 +1330,7 @@ static void gen_twopix(struct tpg_data *tpg, · 1 unmodified line
13301330 break;
13311331 case V4L2_PIX_FMT_BGRX555:
13321332 alpha = 0;
1333− /* fall through */
1333+ fallthrough;
13341334 case V4L2_PIX_FMT_BGRA555:
13351335 buf[0][offset] = (g_u_s << 6) | (r_y_h << 1) |
13361336 ((alpha & 0x80) >> 7);
@@ -1339,7 +1339,7 @@ static void gen_twopix(struct tpg_data *tpg, · 2 unmodified lines
13391339 case V4L2_PIX_FMT_RGB555X:
13401340 case V4L2_PIX_FMT_XRGB555X:
13411341 alpha = 0;
1342− /* fall through */
1342+ fallthrough;
13431343 case V4L2_PIX_FMT_ARGB555X:
13441344 buf[0][offset] = (alpha & 0x80) | (r_y_h << 2) | (g_u_s >> 3);
13451345 buf[0][offset + 1] = (g_u_s << 5) | b_v;
@@ -1366,7 +1366,7 @@ static void gen_twopix(struct tpg_data *tpg, · 20 unmodified lines
13661366 case V4L2_PIX_FMT_HSV32:
13671367 case V4L2_PIX_FMT_XYUV32:
13681368 alpha = 0;
1369− /* fall through */
1369+ fallthrough;
13701370 case V4L2_PIX_FMT_YUV32:
13711371 case V4L2_PIX_FMT_ARGB32:
13721372 case V4L2_PIX_FMT_AYUV32:
@@ -1377,7 +1377,7 @@ static void gen_twopix(struct tpg_data *tpg, · 4 unmodified lines
13771377 break;
13781378 case V4L2_PIX_FMT_RGBX32:
13791379 alpha = 0;
1380− /* fall through */
1380+ fallthrough;
13811381 case V4L2_PIX_FMT_RGBA32:
13821382 buf[0][offset] = r_y_h;
13831383 buf[0][offset + 1] = g_u_s;
@@ -1388,7 +1388,7 @@ static void gen_twopix(struct tpg_data *tpg, · 4 unmodified lines
13881388 case V4L2_PIX_FMT_XBGR32:
13891389 case V4L2_PIX_FMT_VUYX32:
13901390 alpha = 0;
1391− /* fall through */
1391+ fallthrough;
13921392 case V4L2_PIX_FMT_ABGR32:
13931393 case V4L2_PIX_FMT_VUYA32:
13941394 buf[0][offset] = b_v;
@@ -1398,7 +1398,7 @@ static void gen_twopix(struct tpg_data *tpg, · 3 unmodified lines
13981398 break;
13991399 case V4L2_PIX_FMT_BGRX32:
14001400 alpha = 0;
1401− /* fall through */
1401+ fallthrough;
14021402 case V4L2_PIX_FMT_BGRA32:
14031403 buf[0][offset] = alpha;
14041404 buf[0][offset + 1] = b_v;
drivers/media/dvb-core/dvb_net.c+1−1
@@ -546,7 +546,7 @@ static int dvb_net_ule_new_payload(struct dvb_net_ule_handle *h) · 545 unmodified lines
546546 h->priv->ule_sndu_type_1 = 1;
547547 h->ts_remain -= 1;
548548 h->from_where += 1;
549− /* fallthrough */
549+ fallthrough;
550550 case 0:
551551 h->new_ts = 1;
552552 h->ts += TS_SZ;
drivers/media/dvb-frontends/bcm3510.c+1−1
@@ -773,7 +773,7 @@ static int bcm3510_init(struct dvb_frontend* fe) · 772 unmodified lines
773773 deb_info("attempting to download firmware\n");
774774 if ((ret = bcm3510_init_cold(st)) < 0)
775775 return ret;
776− /* fall-through */
776+ fallthrough;
777777 case JDEC_EEPROM_LOAD_WAIT:
778778 deb_info("firmware is loaded\n");
779779 bcm3510_check_firmware_version(st);
drivers/media/dvb-frontends/dib0090.c+1−1
@@ -1693,7 +1693,7 @@ static int dib0090_dc_offset_calibration(struct dib0090_state *state, enum front · 1692 unmodified lines
16931693 if (state->identity.p1g)
16941694 state->dc = dc_p1g_table;
16951695
1696− /* fall through */
1696+ fallthrough;
16971697 case CT_TUNER_STEP_0:
16981698 dprintk("Start/continue DC calibration for %s path\n",
16991699 (state->dc->i == 1) ? "I" : "Q");
drivers/media/dvb-frontends/dib3000mb.c+1−1
@@ -224,7 +224,7 @@ static int dib3000mb_set_frontend(struct dvb_frontend *fe, int tuner) · 223 unmodified lines
224224 switch (c->hierarchy) {
225225 case HIERARCHY_NONE:
226226 deb_setf("hierarchy: none\n");
227− /* fall through */
227+ fallthrough;
228228 case HIERARCHY_1:
229229 deb_setf("hierarchy: alpha=1\n");
230230 wr(DIB3000MB_REG_VIT_ALPHA, DIB3000_ALPHA_1);
drivers/media/dvb-frontends/dib7000p.c+1−1
@@ -276,7 +276,7 @@ static int dib7000p_set_power_mode(struct dib7000p_state *state, enum dib7000p_p · 275 unmodified lines
276276 if (state->version != SOC7090)
277277 reg_1280 &= ~((1 << 11));
278278 reg_1280 &= ~(1 << 6);
279− /* fall-through */
279+ fallthrough;
280280 case DIB7000P_POWER_INTERFACE_ONLY:
281281 /* just leave power on the control-interfaces: GPIO and (I2C or SDIO) */
282282 /* TODO power up either SDIO or I2C */
drivers/media/dvb-frontends/drx39xyj/drxj.c+56−47
@@ -2306,7 +2306,7 @@ hi_command(struct i2c_device_addr *dev_addr, const struct drxj_hi_cmd *cmd, u16 · 2305 unmodified lines
23062306 pr_err("error %d\n", rc);
23072307 goto rw_error;
23082308 }
2309− /* fallthrough */
2309+ fallthrough;
23102310 case SIO_HI_RA_RAM_CMD_BRDCTRL:
23112311 rc = drxj_dap_write_reg16(dev_addr, SIO_HI_RA_RAM_PAR_2__A, cmd->param2, 0);
23122312 if (rc != 0) {
@@ -2318,7 +2318,7 @@ hi_command(struct i2c_device_addr *dev_addr, const struct drxj_hi_cmd *cmd, u16 · 5 unmodified lines
23182318 pr_err("error %d\n", rc);
23192319 goto rw_error;
23202320 }
2321− /* fallthrough */
2321+ fallthrough;
23222322 case SIO_HI_RA_RAM_CMD_NULL:
23232323 /* No parameters */
23242324 break;
@@ -2841,7 +2841,7 @@ ctrl_set_cfg_mpeg_output(struct drx_demod_instance *demod, struct drx_cfg_mpeg_o · 516 unmodified lines
28412841 /* coef = 188/204 */
28422842 max_bit_rate =
28432843 (ext_attr->curr_symbol_rate / 8) * nr_bits * 188;
2844− /* fall-through - as b/c Annex A/C need following settings */
2844+ fallthrough; /* as b/c Annex A/C need following settings */
28452845 case DRX_STANDARD_ITU_B:
28462846 rc = drxj_dap_write_reg16(dev_addr, FEC_OC_FCT_USAGE__A, FEC_OC_FCT_USAGE__PRE, 0);
28472847 if (rc != 0) {
@@ -3555,8 +3555,8 @@ static int ctrl_set_uio_cfg(struct drx_demod_instance *demod, struct drxuio_cfg · 707 unmodified lines
35553555 if (!ext_attr->has_smatx)
35563556 return -EIO;
35573557 switch (uio_cfg->mode) {
3558− case DRX_UIO_MODE_FIRMWARE_SMA: /* fall through */
3559− case DRX_UIO_MODE_FIRMWARE_SAW: /* fall through */
3558+ case DRX_UIO_MODE_FIRMWARE_SMA:
3559+ case DRX_UIO_MODE_FIRMWARE_SAW:
35603560 case DRX_UIO_MODE_READWRITE:
35613561 ext_attr->uio_sma_tx_mode = uio_cfg->mode;
35623562 break;
@@ -3579,7 +3579,7 @@ static int ctrl_set_uio_cfg(struct drx_demod_instance *demod, struct drxuio_cfg · 16 unmodified lines
35793579 if (!ext_attr->has_smarx)
35803580 return -EIO;
35813581 switch (uio_cfg->mode) {
3582− case DRX_UIO_MODE_FIRMWARE0: /* fall through */
3582+ case DRX_UIO_MODE_FIRMWARE0:
35833583 case DRX_UIO_MODE_READWRITE:
35843584 ext_attr->uio_sma_rx_mode = uio_cfg->mode;
35853585 break;
@@ -3603,7 +3603,7 @@ static int ctrl_set_uio_cfg(struct drx_demod_instance *demod, struct drxuio_cfg · 17 unmodified lines
36033603 if (!ext_attr->has_gpio)
36043604 return -EIO;
36053605 switch (uio_cfg->mode) {
3606− case DRX_UIO_MODE_FIRMWARE0: /* fall through */
3606+ case DRX_UIO_MODE_FIRMWARE0:
36073607 case DRX_UIO_MODE_READWRITE:
36083608 ext_attr->uio_gpio_mode = uio_cfg->mode;
36093609 break;
@@ -3639,7 +3639,7 @@ static int ctrl_set_uio_cfg(struct drx_demod_instance *demod, struct drxuio_cfg · 29 unmodified lines
36393639 }
36403640 ext_attr->uio_irqn_mode = uio_cfg->mode;
36413641 break;
3642− case DRX_UIO_MODE_FIRMWARE0: /* fall through */
3642+ case DRX_UIO_MODE_FIRMWARE0:
36433643 default:
36443644 return -EINVAL;
36453645 break;
@@ -4004,31 +4004,36 @@ static int scu_command(struct i2c_device_addr *dev_addr, struct drxjscu_cmd *cmd · 358 unmodified lines
40044004 if (rc != 0) {
40054005 pr_err("error %d\n", rc);
40064006 goto rw_error;
4007− } /* fallthrough */
4007+ }
4008+ fallthrough;
40084009 case 4:
40094010 rc = drxj_dap_write_reg16(dev_addr, SCU_RAM_PARAM_3__A, *(cmd->parameter + 3), 0);
40104011 if (rc != 0) {
40114012 pr_err("error %d\n", rc);
40124013 goto rw_error;
4013− } /* fallthrough */
4014+ }
4015+ fallthrough;
40144016 case 3:
40154017 rc = drxj_dap_write_reg16(dev_addr, SCU_RAM_PARAM_2__A, *(cmd->parameter + 2), 0);
40164018 if (rc != 0) {
40174019 pr_err("error %d\n", rc);
40184020 goto rw_error;
4019− } /* fallthrough */
4021+ }
4022+ fallthrough;
40204023 case 2:
40214024 rc = drxj_dap_write_reg16(dev_addr, SCU_RAM_PARAM_1__A, *(cmd->parameter + 1), 0);
40224025 if (rc != 0) {
40234026 pr_err("error %d\n", rc);
40244027 goto rw_error;
4025− } /* fallthrough */
4028+ }
4029+ fallthrough;
40264030 case 1:
40274031 rc = drxj_dap_write_reg16(dev_addr, SCU_RAM_PARAM_0__A, *(cmd->parameter + 0), 0);
40284032 if (rc != 0) {
40294033 pr_err("error %d\n", rc);
40304034 goto rw_error;
4031− } /* fallthrough */
4035+ }
4036+ fallthrough;
40324037 case 0:
40334038 /* do nothing */
40344039 break;
@@ -4068,25 +4073,29 @@ static int scu_command(struct i2c_device_addr *dev_addr, struct drxjscu_cmd *cmd · 33 unmodified lines
40684073 if (rc != 0) {
40694074 pr_err("error %d\n", rc);
40704075 goto rw_error;
4071− } /* fallthrough */
4076+ }
4077+ fallthrough;
40724078 case 3:
40734079 rc = drxj_dap_read_reg16(dev_addr, SCU_RAM_PARAM_2__A, cmd->result + 2, 0);
40744080 if (rc != 0) {
40754081 pr_err("error %d\n", rc);
40764082 goto rw_error;
4077− } /* fallthrough */
4083+ }
4084+ fallthrough;
40784085 case 2:
40794086 rc = drxj_dap_read_reg16(dev_addr, SCU_RAM_PARAM_1__A, cmd->result + 1, 0);
40804087 if (rc != 0) {
40814088 pr_err("error %d\n", rc);
40824089 goto rw_error;
4083− } /* fallthrough */
4090+ }
4091+ fallthrough;
40844092 case 1:
40854093 rc = drxj_dap_read_reg16(dev_addr, SCU_RAM_PARAM_0__A, cmd->result + 0, 0);
40864094 if (rc != 0) {
40874095 pr_err("error %d\n", rc);
40884096 goto rw_error;
4089− } /* fallthrough */
4097+ }
4098+ fallthrough;
40904099 case 0:
40914100 /* do nothing */
40924101 break;
@@ -4791,7 +4800,7 @@ set_frequency(struct drx_demod_instance *demod, · 698 unmodified lines
47914800 Sound carrier is already 3Mhz above centre frequency due
47924801 to tuner setting so now add an extra shift of 1MHz... */
47934802 fm_frequency_shift = 1000;
4794− /*fall through */
4803+ fallthrough;
47954804 case DRX_STANDARD_ITU_B:
47964805 case DRX_STANDARD_NTSC:
47974806 case DRX_STANDARD_PAL_SECAM_BG:
@@ -10475,11 +10484,11 @@ ctrl_set_channel(struct drx_demod_instance *demod, struct drx_channel *channel) · 5677 unmodified lines
1047510484 (standard == DRX_STANDARD_NTSC)) {
1047610485 switch (channel->bandwidth) {
1047710486 case DRX_BANDWIDTH_6MHZ:
10478− case DRX_BANDWIDTH_UNKNOWN: /* fall through */
10487+ case DRX_BANDWIDTH_UNKNOWN:
1047910488 channel->bandwidth = DRX_BANDWIDTH_6MHZ;
1048010489 break;
10481− case DRX_BANDWIDTH_8MHZ: /* fall through */
10482− case DRX_BANDWIDTH_7MHZ: /* fall through */
10490+ case DRX_BANDWIDTH_8MHZ:
10491+ case DRX_BANDWIDTH_7MHZ:
1048310492 default:
1048410493 return -EINVAL;
1048510494 }
@@ -10511,10 +10520,10 @@ ctrl_set_channel(struct drx_demod_instance *demod, struct drx_channel *channel) · 25 unmodified lines
1051110520 }
1051210521
1051310522 switch (channel->constellation) {
10514− case DRX_CONSTELLATION_QAM16: /* fall through */
10515− case DRX_CONSTELLATION_QAM32: /* fall through */
10516− case DRX_CONSTELLATION_QAM64: /* fall through */
10517− case DRX_CONSTELLATION_QAM128: /* fall through */
10523+ case DRX_CONSTELLATION_QAM16:
10524+ case DRX_CONSTELLATION_QAM32:
10525+ case DRX_CONSTELLATION_QAM64:
10526+ case DRX_CONSTELLATION_QAM128:
1051810527 case DRX_CONSTELLATION_QAM256:
1051910528 bandwidth_temp = channel->symbolrate * bw_rolloff_factor;
1052010529 bandwidth = bandwidth_temp / 100;
@@ -10628,8 +10637,8 @@ ctrl_set_channel(struct drx_demod_instance *demod, struct drx_channel *channel) · 107 unmodified lines
1062810637 }
1062910638 break;
1063010639 #ifndef DRXJ_VSB_ONLY
10631− case DRX_STANDARD_ITU_A: /* fallthrough */
10632− case DRX_STANDARD_ITU_B: /* fallthrough */
10640+ case DRX_STANDARD_ITU_A:
10641+ case DRX_STANDARD_ITU_B:
1063310642 case DRX_STANDARD_ITU_C:
1063410643 rc = set_qam_channel(demod, channel, tuner_freq_offset);
1063510644 if (rc != 0) {
@@ -10820,7 +10829,7 @@ ctrl_lock_status(struct drx_demod_instance *demod, enum drx_lock_status *lock_st · 184 unmodified lines
1082010829 SCU_RAM_COMMAND_CMD_DEMOD_GET_LOCK;
1082110830 break;
1082210831 #endif
10823− case DRX_STANDARD_UNKNOWN: /* fallthrough */
10832+ case DRX_STANDARD_UNKNOWN:
1082410833 default:
1082510834 return -EIO;
1082610835 }
@@ -10888,8 +10897,8 @@ ctrl_set_standard(struct drx_demod_instance *demod, enum drx_standard *standard) · 61 unmodified lines
1088810897 */
1088910898 switch (prev_standard) {
1089010899 #ifndef DRXJ_VSB_ONLY
10891− case DRX_STANDARD_ITU_A: /* fallthrough */
10892− case DRX_STANDARD_ITU_B: /* fallthrough */
10900+ case DRX_STANDARD_ITU_A:
10901+ case DRX_STANDARD_ITU_B:
1089310902 case DRX_STANDARD_ITU_C:
1089410903 rc = power_down_qam(demod, false);
1089510904 if (rc != 0) {
@@ -10908,7 +10917,7 @@ ctrl_set_standard(struct drx_demod_instance *demod, enum drx_standard *standard) · 12 unmodified lines
1090810917 case DRX_STANDARD_UNKNOWN:
1090910918 /* Do nothing */
1091010919 break;
10911− case DRX_STANDARD_AUTO: /* fallthrough */
10920+ case DRX_STANDARD_AUTO:
1091210921 default:
1091310922 return -EINVAL;
1091410923 }
@@ -10921,8 +10930,8 @@ ctrl_set_standard(struct drx_demod_instance *demod, enum drx_standard *standard) · 6 unmodified lines
1092110930
1092210931 switch (*standard) {
1092310932 #ifndef DRXJ_VSB_ONLY
10924− case DRX_STANDARD_ITU_A: /* fallthrough */
10925− case DRX_STANDARD_ITU_B: /* fallthrough */
10933+ case DRX_STANDARD_ITU_A:
10934+ case DRX_STANDARD_ITU_B:
1092610935 case DRX_STANDARD_ITU_C:
1092710936 do {
1092810937 u16 dummy;
@@ -11111,12 +11120,12 @@ ctrl_power_mode(struct drx_demod_instance *demod, enum drx_power_mode *mode) · 182 unmodified lines
1111111120 goto rw_error;
1111211121 }
1111311122 break;
11114− case DRX_STANDARD_PAL_SECAM_BG: /* fallthrough */
11115− case DRX_STANDARD_PAL_SECAM_DK: /* fallthrough */
11116− case DRX_STANDARD_PAL_SECAM_I: /* fallthrough */
11117− case DRX_STANDARD_PAL_SECAM_L: /* fallthrough */
11118− case DRX_STANDARD_PAL_SECAM_LP: /* fallthrough */
11119− case DRX_STANDARD_NTSC: /* fallthrough */
11123+ case DRX_STANDARD_PAL_SECAM_BG:
11124+ case DRX_STANDARD_PAL_SECAM_DK:
11125+ case DRX_STANDARD_PAL_SECAM_I:
11126+ case DRX_STANDARD_PAL_SECAM_L:
11127+ case DRX_STANDARD_PAL_SECAM_LP:
11128+ case DRX_STANDARD_NTSC:
1112011129 case DRX_STANDARD_FM:
1112111130 rc = power_down_atv(demod, ext_attr->standard, true);
1112211131 if (rc != 0) {
@@ -11127,7 +11136,7 @@ ctrl_power_mode(struct drx_demod_instance *demod, enum drx_power_mode *mode) · 4 unmodified lines
1112711136 case DRX_STANDARD_UNKNOWN:
1112811137 /* Do nothing */
1112911138 break;
11130− case DRX_STANDARD_AUTO: /* fallthrough */
11139+ case DRX_STANDARD_AUTO:
1113111140 default:
1113211141 return -EIO;
1113311142 }
@@ -11220,8 +11229,8 @@ ctrl_set_cfg_pre_saw(struct drx_demod_instance *demod, struct drxj_cfg_pre_saw * · 86 unmodified lines
1122011229 ext_attr->vsb_pre_saw_cfg = *pre_saw;
1122111230 break;
1122211231 #ifndef DRXJ_VSB_ONLY
11223− case DRX_STANDARD_ITU_A: /* fallthrough */
11224− case DRX_STANDARD_ITU_B: /* fallthrough */
11232+ case DRX_STANDARD_ITU_A:
11233+ case DRX_STANDARD_ITU_B:
1122511234 case DRX_STANDARD_ITU_C:
1122611235 ext_attr->qam_pre_saw_cfg = *pre_saw;
1122711236 break;
@@ -11264,10 +11273,10 @@ ctrl_set_cfg_afe_gain(struct drx_demod_instance *demod, struct drxj_cfg_afe_gain · 36 unmodified lines
1126411273 ext_attr = (struct drxj_data *) demod->my_ext_attr;
1126511274
1126611275 switch (afe_gain->standard) {
11267− case DRX_STANDARD_8VSB: /* fallthrough */
11276+ case DRX_STANDARD_8VSB: fallthrough;
1126811277 #ifndef DRXJ_VSB_ONLY
11269− case DRX_STANDARD_ITU_A: /* fallthrough */
11270− case DRX_STANDARD_ITU_B: /* fallthrough */
11278+ case DRX_STANDARD_ITU_A:
11279+ case DRX_STANDARD_ITU_B:
1127111280 case DRX_STANDARD_ITU_C:
1127211281 #endif
1127311282 /* Do nothing */
@@ -11301,8 +11310,8 @@ ctrl_set_cfg_afe_gain(struct drx_demod_instance *demod, struct drxj_cfg_afe_gain · 27 unmodified lines
1130111310 ext_attr->vsb_pga_cfg = gain * 13 + 140;
1130211311 break;
1130311312 #ifndef DRXJ_VSB_ONLY
11304− case DRX_STANDARD_ITU_A: /* fallthrough */
11305− case DRX_STANDARD_ITU_B: /* fallthrough */
11313+ case DRX_STANDARD_ITU_A:
11314+ case DRX_STANDARD_ITU_B:

3 more lines aren’t shown here.

drivers/media/dvb-frontends/drxd_hard.c+6−6

This diff is large: its 53 lines aren’t shown here.

drivers/media/dvb-frontends/drxk_hard.c+12−12

This diff is large: its 104 lines aren’t shown here.

drivers/media/dvb-frontends/lgdt3306a.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/mt352.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/mxl5xx.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/or51132.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/s5h1411.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/zl10353.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/i2c/Kconfig+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/pci/cx23885/cx23885-cards.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/pci/ddbridge/ddbridge-core.c+12−11

This diff is large: its 83 lines aren’t shown here.

drivers/media/pci/meye/meye.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/ttpci/av7110.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/pci/ttpci/av7110_hw.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/ttpci/av7110_ipack.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/ttpci/budget-av.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/ttpci/budget.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/platform/sh_vou.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/platform/ti-vpe/cal.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/radio/radio-si476x.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/media/radio/tea575x.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/rc/bpf-lirc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/rc/gpio-ir-tx.c+5−11

This diff is large: its 78 lines aren’t shown here.

drivers/media/rc/ir-rc6-decoder.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/rc/ir-sony-decoder.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/rc/mceusb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/rc/rc-main.c+28−16

This diff is large: its 90 lines aren’t shown here.

drivers/media/test-drivers/vicodec/vicodec-core.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/tuners/xc5000.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/b2c2/flexcop-usb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/cpia2/cpia2_core.c+18−18

This diff is large: its 162 lines aren’t shown here.

drivers/media/usb/cx231xx/cx231xx-video.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/dvb-usb/dib0700_devices.c+6−6

This diff is large: its 21 lines aren’t shown here.

drivers/media/usb/dvb-usb/dw2102.c+3−3

This diff is large: its 24 lines aren’t shown here.

drivers/media/v4l2-core/v4l2-ctrls.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/v4l2-core/v4l2-ioctl.c+27−25

This diff is large: its 80 lines aren’t shown here.

drivers/media/v4l2-core/videobuf-core.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/memory/omap-gpmc.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/memstick/core/ms_block.c+6−6

This diff is large: its 54 lines aren’t shown here.

drivers/memstick/host/jmb38x_ms.c+2−2

This diff is large: its 14 lines aren’t shown here.

drivers/memstick/host/tifm_ms.c+2−2

This diff is large: its 14 lines aren’t shown here.

drivers/message/fusion/mptbase.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/message/fusion/mptsas.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/message/fusion/mptscsih.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/mfd/db8500-prcmu.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/mfd/iqs62x.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/mfd/mfd-core.c+6−6

This diff is large: its 33 lines aren’t shown here.

drivers/mfd/mxs-lradc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mfd/omap-usb-host.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/mfd/rave-sp.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/mfd/syscon.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/misc/eeprom/at25.c+5−5

This diff is large: its 35 lines aren’t shown here.

drivers/misc/habanalabs/common/command_buffer.c+14−2

This diff is large: its 44 lines aren’t shown here.

drivers/misc/habanalabs/common/command_submission.c+8−0

This diff is large: its 15 lines aren’t shown here.

drivers/misc/habanalabs/common/debugfs.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/misc/habanalabs/common/device.c+7−2

This diff is large: its 30 lines aren’t shown here.

drivers/misc/habanalabs/common/firmware_if.c+9−0

This diff is large: its 23 lines aren’t shown here.

drivers/misc/habanalabs/common/habanalabs.h+5−2

This diff is large: its 35 lines aren’t shown here.

drivers/misc/habanalabs/common/memory.c+7−2

This diff is large: its 30 lines aren’t shown here.

drivers/misc/habanalabs/common/mmu.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/misc/habanalabs/common/pci.c+5−3

This diff is large: its 29 lines aren’t shown here.

drivers/misc/habanalabs/common/sysfs.c+4−3

This diff is large: its 35 lines aren’t shown here.

drivers/misc/habanalabs/gaudi/gaudi.c+67−25

This diff is large: its 165 lines aren’t shown here.

drivers/misc/habanalabs/gaudi/gaudiP.h+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/misc/habanalabs/gaudi/gaudi_coresight.c+7−1

This diff is large: its 22 lines aren’t shown here.

drivers/misc/habanalabs/goya/goya.c+31−0

This diff is large: its 52 lines aren’t shown here.

drivers/misc/habanalabs/goya/goya_coresight.c+7−1

This diff is large: its 19 lines aren’t shown here.

drivers/misc/mei/hdcp/mei_hdcp.c+24−16

This diff is large: its 63 lines aren’t shown here.

drivers/misc/mic/scif/scif_api.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/misc/mic/scif/scif_rma.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/misc/sgi-gru/grukservices.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/misc/sgi-xp/xpc_main.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/misc/sgi-xp/xpc_partition.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/misc/sgi-xp/xpc_uv.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mmc/core/host.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mmc/host/atmel-mci.c+4−4

This diff is large: its 29 lines aren’t shown here.

drivers/mmc/host/davinci_mmc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mmc/host/dw_mmc-k3.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mmc/host/dw_mmc.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/mmc/host/jz4740_mmc.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/mmc/host/meson-mx-sdio.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mmc/host/mtk-sd.c+13−0

This diff is large: its 41 lines aren’t shown here.

drivers/mmc/host/renesas_sdhi_core.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mmc/host/sdhci-acpi.c+57−10

This diff is large: its 105 lines aren’t shown here.

drivers/mmc/host/sdhci-esdhc-imx.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mmc/host/sdhci-pci-core.c+9−1

This diff is large: its 24 lines aren’t shown here.

drivers/mmc/host/sdhci-s3c.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mmc/host/sdhci-sprd.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mmc/host/sdhci-tegra.c+51−4

This diff is large: its 125 lines aren’t shown here.

drivers/mmc/host/sdhci-xenon-phy.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mmc/host/sdhci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mmc/host/tifm_sd.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mmc/host/usdhi6rol0.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/mux/adgs1408.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/appletalk/cops.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/arcnet/arc-rimi.c+3−3

This diff is large: its 17 lines aren’t shown here.

drivers/net/arcnet/com20020-isa.c+6−6

This diff is large: its 29 lines aren’t shown here.

drivers/net/arcnet/com90io.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/net/arcnet/com90xx.c+3−3

This diff is large: its 17 lines aren’t shown here.

drivers/net/bonding/bond_3ad.c+10−9

This diff is large: its 89 lines aren’t shown here.

drivers/net/bonding/bond_alb.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/net/bonding/bond_main.c+43−11

This diff is large: its 151 lines aren’t shown here.

drivers/net/can/at91_can.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/can/peak_canfd/peak_pciefd_main.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/can/sja1000/sja1000_platform.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/can/slcan.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/can/spi/mcp251x.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/can/usb/peak_usb/pcan_usb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/can/usb/peak_usb/pcan_usb_core.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/can/usb/peak_usb/pcan_usb_pro.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/net/dsa/b53/b53_common.c+3−1

This diff is large: its 18 lines aren’t shown here.

drivers/net/dsa/b53/b53_serdes.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/dsa/bcm_sf2.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/dsa/microchip/ksz9477.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/dsa/mt7530.c+6−3

This diff is large: its 37 lines aren’t shown here.

drivers/net/dsa/mv88e6xxx/chip.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/dsa/ocelot/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/dsa/ocelot/felix.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/dsa/sja1105/sja1105_main.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/3com/3c509.c+2−2

This diff is large: its 17 lines aren’t shown here.

drivers/net/ethernet/3com/3c574_cs.c+4−4

This diff is large: its 29 lines aren’t shown here.

drivers/net/ethernet/8390/axnet_cs.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/net/ethernet/8390/pcnet_cs.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/alacritech/slicoss.c+6−6

This diff is large: its 20 lines aren’t shown here.

drivers/net/ethernet/alteon/acenic.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/amazon/ena/ena_netdev.c+18−17

This diff is large: its 73 lines aren’t shown here.

drivers/net/ethernet/amd/amd8111e.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/amd/xgbe/xgbe-drv.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c+13−0

This diff is large: its 97 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/net/ethernet/arc/emac_mdio.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/broadcom/bcmsysport.c+4−2

This diff is large: its 13 lines aren’t shown here.

drivers/net/ethernet/broadcom/bgmac-bcma.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/broadcom/bgmac-platform.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnx2.c+7−7

This diff is large: its 56 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c+7−7

This diff is large: its 59 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c+2−2

This diff is large: its 14 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnxt/bnxt.c+67−39

This diff is large: its 276 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c+8−12

This diff is large: its 60 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/net/ethernet/broadcom/cnic.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/broadcom/genet/bcmgenet.c+3−3

This diff is large: its 22 lines aren’t shown here.

drivers/net/ethernet/broadcom/genet/bcmmii.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/broadcom/tg3.c+40−31

This diff is large: its 226 lines aren’t shown here.

drivers/net/ethernet/brocade/bna/bfa_ioc.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/net/ethernet/brocade/bna/bna_enet.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/brocade/bna/bna_tx_rx.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/cadence/macb_ptp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/cavium/liquidio/lio_main.c+14−15

This diff is large: its 107 lines aren’t shown here.

drivers/net/ethernet/cavium/liquidio/lio_vf_main.c+12−13

This diff is large: its 86 lines aren’t shown here.

drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/cavium/thunder/nicvf_main.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb3/l2t.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb4/cxgb4_thermal.c+6−2

This diff is large: its 29 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb4/l2t.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb4/sge.c+7−3

This diff is large: its 34 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb4/t4_hw.c+3−3

This diff is large: its 17 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/cisco/enic/enic_main.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/cortina/gemini.c+18−20

This diff is large: its 70 lines aren’t shown here.

drivers/net/ethernet/davicom/dm9000.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/dec/tulip/de4x5.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/net/ethernet/dec/tulip/tulip_core.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/dec/tulip/winbond-840.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/emulex/benet/be_ethtool.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/freescale/dpaa/dpaa_eth.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/net/ethernet/freescale/fec_main.c+2−2

This diff is large: its 14 lines aren’t shown here.

drivers/net/ethernet/freescale/fman/fman_memac.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/freescale/fman/fman_port.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/net/ethernet/freescale/gianfar.c+3−1

This diff is large: its 12 lines aren’t shown here.

drivers/net/ethernet/freescale/ucc_geth.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns/hns_enet.c+6−3

This diff is large: its 23 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns/hns_ethtool.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3_enet.c+5−3

This diff is large: its 36 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c+1−3

This diff is large: its 22 lines aren’t shown here.

drivers/net/ethernet/ibm/ehea/ehea_main.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/ibm/emac/core.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/ibm/ibmvnic.c+14−1

This diff is large: its 47 lines aren’t shown here.

drivers/net/ethernet/intel/e1000e/netdev.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/intel/i40e/i40e_common.c+27−8

This diff is large: its 65 lines aren’t shown here.

drivers/net/ethernet/intel/i40e/i40e_main.c+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/intel/igb/igb_main.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/intel/igc/igc_main.c+2−3

This diff is large: its 19 lines aren’t shown here.

drivers/net/ethernet/intel/igc/igc_ptp.c+0−2

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/marvell/mvneta.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/net/ethernet/marvell/skge.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/marvell/sky2.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/mediatek/mtk_eth_soc.c+3−3

This diff is large: its 23 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx4/mr.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxfw/mlxfw_fsm.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/core.c+9−9

This diff is large: its 31 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/core_env.c+3−3

This diff is large: its 20 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum.h+5−5

This diff is large: its 17 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c+16−16

This diff is large: its 116 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c+3−3

This diff is large: its 16 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c+6−6

This diff is large: its 40 lines aren’t shown here.

drivers/net/ethernet/microchip/lan743x_ethtool.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/mscc/ocelot.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/natsemi/natsemi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/neterion/vxge/vxge-config.c+3−3

This diff is large: its 24 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/crypto/tls.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/flower/action.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/flower/cmsg.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/flower/offload.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/nfp_asm.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/nfp_net_common.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c+2−2

This diff is large: its 15 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/packetengines/yellowfin.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/pensando/ionic/ionic_txrx.c+3−10

This diff is large: its 39 lines aren’t shown here.

drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_cxt.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_dev.c+2−2

This diff is large: its 17 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_main.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_mcp.c+5−5

This diff is large: its 45 lines aren’t shown here.

drivers/net/ethernet/qlogic/qla3xxx.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/realtek/r8169_main.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/renesas/ravb_main.c+55−55

This diff is large: its 166 lines aren’t shown here.

drivers/net/ethernet/rocker/rocker_main.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/sfc/ef100.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/net/ethernet/sfc/ef100_nic.c+6−4

This diff is large: its 39 lines aren’t shown here.

drivers/net/ethernet/sfc/ef100_rx.c+9−4

This diff is large: its 37 lines aren’t shown here.

drivers/net/ethernet/sfc/ef100_rx.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/sfc/efx.h+8−0

This diff is large: its 15 lines aren’t shown here.

drivers/net/ethernet/sfc/falcon/ethtool.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/sfc/falcon/farch.c+7−7

This diff is large: its 58 lines aren’t shown here.

drivers/net/ethernet/sfc/farch.c+7−7

This diff is large: its 58 lines aren’t shown here.

drivers/net/ethernet/sfc/mcdi_filters.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/sfc/mcdi_port_common.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/sfc/net_driver.h+4−0

This diff is large: its 32 lines aren’t shown here.

drivers/net/ethernet/sfc/nic.c+4−0

This diff is large: its 25 lines aren’t shown here.

drivers/net/ethernet/sfc/rx.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/sfc/rx_common.c+3−1

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/sis/sis900.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/smsc/smc911x.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/socionext/netsec.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/net/ethernet/stmicro/stmmac/dwmac-anarion.c+4−3

This diff is large: its 14 lines aren’t shown here.

drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/sun/cassini.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/sun/niu.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/sun/sungem.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/ti/am65-cpsw-nuss.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/ti/cpsw-phy-sel.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/ti/cpsw.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/ti/cpsw_new.c+22−7

This diff is large: its 42 lines aren’t shown here.

drivers/net/ethernet/ti/cpsw_priv.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/net/ethernet/ti/tlan.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/toshiba/ps3_gelic_wireless.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/toshiba/spider_net.c+14−14

This diff is large: its 63 lines aren’t shown here.

drivers/net/ethernet/xircom/xirc2ps_cs.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/fddi/skfp/cfm.c+2−15

This diff is large: its 48 lines aren’t shown here.

drivers/net/fddi/skfp/fplustm.c+0−4

This diff is large: its 11 lines aren’t shown here.

drivers/net/fddi/skfp/hwmtm.c+0−4

This diff is large: its 11 lines aren’t shown here.

drivers/net/fddi/skfp/pcmplc.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/fddi/skfp/smt.c+2−5

This diff is large: its 28 lines aren’t shown here.

drivers/net/fjes/fjes_main.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/gtp.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/hamradio/baycom_epp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/hamradio/mkiss.c+2−3

This diff is large: its 26 lines aren’t shown here.

drivers/net/hyperv/netvsc_drv.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ipvlan/ipvlan_main.c+22−5

This diff is large: its 62 lines aren’t shown here.

drivers/net/macvlan.c+18−5

This diff is large: its 51 lines aren’t shown here.

drivers/net/mii.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/netdevsim/bus.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/netdevsim/fib.c+3−3

This diff is large: its 18 lines aren’t shown here.

drivers/net/phy/adin.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/net/phy/dp83640.c+4−4

This diff is large: its 26 lines aren’t shown here.

drivers/net/phy/dp83867.c+2−2

This diff is large: its 12 lines aren’t shown here.

drivers/net/phy/dp83869.c+6−6

This diff is large: its 25 lines aren’t shown here.

drivers/net/phy/fixed_phy.c+2−2

This diff is large: its 16 lines aren’t shown here.

drivers/net/phy/mscc/mscc_main.c+2−2

This diff is large: its 16 lines aren’t shown here.

drivers/net/phy/phy.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/phy/phy_device.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/phy/phylink.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/phy/sfp-bus.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/phy/sfp.c+6−6

This diff is large: its 54 lines aren’t shown here.

drivers/net/plip/plip.c+13−13

This diff is large: its 117 lines aren’t shown here.

drivers/net/tun.c+3−3

This diff is large: its 22 lines aren’t shown here.

drivers/net/usb/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/usb/aqc111.c+3−3

This diff is large: its 17 lines aren’t shown here.

drivers/net/usb/asix_common.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/usb/catc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/usb/cdc-phonet.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/usb/dm9601.c+4−0

This diff is large: its 11 lines aren’t shown here.

drivers/net/usb/lan78xx.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/usb/pegasus.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/usb/r8152.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/net/usb/rtl8150.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/usb/usbnet.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/net/veth.c+4−4

This diff is large: its 26 lines aren’t shown here.

drivers/net/virtio_net.c+3−3

This diff is large: its 22 lines aren’t shown here.

drivers/net/vmxnet3/vmxnet3_ethtool.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wan/dlci.c+1−2

This diff is large: its 16 lines aren’t shown here.

drivers/net/wan/hdlc.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/wan/hdlc_cisco.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/wan/hdlc_x25.c+16−1

This diff is large: its 32 lines aren’t shown here.

drivers/net/wan/lapbether.c+4−1

This diff is large: its 26 lines aren’t shown here.

drivers/net/wan/sdla.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wan/x25_asy.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wimax/i2400m/control.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wimax/i2400m/usb-fw.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wimax/i2400m/usb-tx.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wimax/i2400m/usb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/xen-netback/hash.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/xen-netback/xenbus.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/xen-netfront.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/nfc/pn533/pn533.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/nfc/st21nfca/dep.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/nfc/st95hf/core.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/nfc/trf7970a.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/ntb/ntb_transport.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/nvdimm/dimm_devs.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/nvme/host/core.c+104−48

This diff is large: its 296 lines aren’t shown here.

drivers/nvme/host/fabrics.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/nvme/host/fc.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/nvme/host/multipath.c+26−43

This diff is large: its 105 lines aren’t shown here.

drivers/nvme/host/nvme.h+28−5

This diff is large: its 62 lines aren’t shown here.

drivers/nvme/host/pci.c+12−11

This diff is large: its 91 lines aren’t shown here.

drivers/nvme/host/rdma.c+53−19

This diff is large: its 168 lines aren’t shown here.

drivers/nvme/host/tcp.c+59−26

This diff is large: its 196 lines aren’t shown here.

drivers/nvme/target/configfs.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/nvme/target/core.c+7−1

This diff is large: its 29 lines aren’t shown here.

drivers/nvme/target/fc.c+2−2

This diff is large: its 12 lines aren’t shown here.

drivers/nvme/target/fcloop.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/nvme/target/io-cmd-bdev.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/nvme/target/loop.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/nvme/target/passthru.c+17−8

This diff is large: its 84 lines aren’t shown here.

drivers/nvme/target/rdma.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/nvme/target/tcp.c+9−1

This diff is large: its 24 lines aren’t shown here.

drivers/of/address.c+20−1

This diff is large: its 43 lines aren’t shown here.

drivers/opp/core.c+28−13

This diff is large: its 91 lines aren’t shown here.

drivers/opp/opp.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/parport/ieee1284.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/parport/parport_pc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/pci/controller/dwc/pci-imx6.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/pci/controller/pci-rcar-gen2.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/pci/hotplug/ibmphp_res.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/pci/hotplug/pciehp_ctrl.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/pci/hotplug/s390_pci_hpc.c+5−7

This diff is large: its 27 lines aren’t shown here.

drivers/pci/hotplug/shpchp_ctrl.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/pci/p2pdma.c+6−4

This diff is large: its 30 lines aren’t shown here.

drivers/pci/pci.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/pci/proc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/pci/quirks.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/pci/setup-bus.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/pci/xen-pcifront.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/pcmcia/db1xxx_ss.c+4−4

This diff is large: its 27 lines aren’t shown here.

drivers/perf/arm-ccn.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/perf/arm_spe_pmu.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/phy/qualcomm/phy-qcom-usb-hs.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/phy/rockchip/phy-rockchip-inno-usb2.c+4−4

This diff is large: its 32 lines aren’t shown here.

drivers/platform/olpc/olpc-xo175-ec.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/platform/x86/acer-wmi.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/platform/x86/dell-laptop.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/platform/x86/surfacepro3_button.c+4−4

This diff is large: its 33 lines aren’t shown here.

drivers/platform/x86/thinkpad_acpi.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/platform/x86/toshiba_acpi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/power/supply/ab8500_charger.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/power/supply/ab8500_fg.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/power/supply/abx500_chargalg.c+13−13

This diff is large: its 117 lines aren’t shown here.

drivers/power/supply/axp20x_usb_power.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/power/supply/cros_usbpd-charger.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/power/supply/max8925_power.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/power/supply/wm831x_power.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/power/supply/wm8350_power.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ps3/ps3av.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ps3/ps3av_cmd.c+2−2

This diff is large: its 14 lines aren’t shown here.

drivers/ptp/ptp_clockmatrix.c+43−13

This diff is large: its 103 lines aren’t shown here.

drivers/ptp/ptp_clockmatrix.h+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/rapidio/devices/rio_mport_cdev.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/regulator/axp20x-regulator.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/regulator/core.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/regulator/slg51000-regulator.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/regulator/twl6030-regulator.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/remoteproc/omap_remoteproc.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/reset/reset-imx7.c+7−7

This diff is large: its 28 lines aren’t shown here.

drivers/rpmsg/qcom_glink_native.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/rtc/rtc-m41t80.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/rtc/rtc-pcf85063.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/rtc/rtc-pcf8523.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/rtc/rtc-stmp3xxx.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/s390/cio/css.c+5−0

This diff is large: its 12 lines aren’t shown here.

drivers/s390/net/ctcm_fsms.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/s390/net/ctcm_mpc.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/s390/net/qeth_core_main.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/s390/net/qeth_ethtool.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/s390/net/qeth_l2_main.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/s390/net/qeth_l3_main.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/s390/scsi/zfcp_fsf.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/scsi/53c700.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/BusLogic.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/FlashPoint.c+6−3

This diff is large: its 18 lines aren’t shown here.

drivers/scsi/NCR5380.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/aacraid/aachba.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/scsi/aacraid/commsup.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/aacraid/linit.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/aic7xxx/aic79xx_core.c+20−20

This diff is large: its 171 lines aren’t shown here.

drivers/scsi/aic7xxx/aic79xx_osm.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/aic7xxx/aic7xxx_core.c+14−14

This diff is large: its 103 lines aren’t shown here.

drivers/scsi/aic94xx/aic94xx_scb.c+5−5

This diff is large: its 41 lines aren’t shown here.

drivers/scsi/aic94xx/aic94xx_tmf.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/arcmsr/arcmsr_hba.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/arm/fas216.c+6−6

This diff is large: its 54 lines aren’t shown here.

drivers/scsi/be2iscsi/be_iscsi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/be2iscsi/be_main.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/bfa/bfa_fcpim.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/scsi/bfa/bfa_fcs_lport.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/scsi/bfa/bfa_fcs_rport.c+7−7

This diff is large: its 61 lines aren’t shown here.

drivers/scsi/bfa/bfa_ioc.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/scsi/bfa/bfa_svc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/bnx2fc/bnx2fc_hwi.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/csiostor/csio_hw.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/csiostor/csio_lnode.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/csiostor/csio_wr.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/cxgbi/cxgb3i/cxgb3i.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/cxgbi/cxgb4i/cxgb4i.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/cxgbi/libcxgbi.c+1−1

This diff is large: its 12 lines aren’t shown here.

drivers/scsi/cxlflash/main.c+14−14

This diff is large: its 91 lines aren’t shown here.

drivers/scsi/cxlflash/superpipe.c+4−6

This diff is large: its 49 lines aren’t shown here.

drivers/scsi/device_handler/scsi_dh_hp_sw.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/scsi/esas2r/esas2r_flash.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/esas2r/esas2r_init.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/scsi/esp_scsi.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/scsi/fcoe/fcoe_ctlr.c+4−4

This diff is large: its 31 lines aren’t shown here.

drivers/scsi/g_NCR5380.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/hisi_sas/hisi_sas_main.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/hpsa.c+5−5

This diff is large: its 45 lines aren’t shown here.

drivers/scsi/ibmvscsi/ibmvfc.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c+3−3

This diff is large: its 22 lines aren’t shown here.

drivers/scsi/imm.c+7−7

This diff is large: its 63 lines aren’t shown here.

drivers/scsi/isci/phy.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/isci/remote_device.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/scsi/isci/remote_node_context.c+3−3

This diff is large: its 21 lines aren’t shown here.

drivers/scsi/isci/request.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/libfc/fc_exch.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/scsi/libfc/fc_fcp.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/scsi/libfc/fc_lport.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/libfc/fc_rport.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/libiscsi.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/scsi/libiscsi_tcp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/libsas/sas_ata.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/libsas/sas_discover.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/libsas/sas_expander.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/libsas/sas_scsi_host.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/lpfc/lpfc_ct.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/scsi/lpfc/lpfc_els.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/lpfc/lpfc_hbadisc.c+3−4

This diff is large: its 27 lines aren’t shown here.

drivers/scsi/lpfc/lpfc_nportdisc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/lpfc/lpfc_nvme.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/lpfc/lpfc_scsi.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/scsi/lpfc/lpfc_sli.c+14−14

This diff is large: its 126 lines aren’t shown here.

drivers/scsi/megaraid.c+6−6

This diff is large: its 40 lines aren’t shown here.

drivers/scsi/megaraid/megaraid_mbox.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/megaraid/megaraid_sas_base.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/megaraid/megaraid_sas_fusion.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/mesh.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/mpt3sas/mpt3sas_base.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/mpt3sas/mpt3sas_ctl.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/mpt3sas/mpt3sas_scsih.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/scsi/myrb.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/scsi/ncr53c8xx.c+7−7

This diff is large: its 54 lines aren’t shown here.

drivers/scsi/pcmcia/nsp_cs.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/ppa.c+5−5

This diff is large: its 45 lines aren’t shown here.

drivers/scsi/qedf/qedf_main.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/qla2xxx/qla_dbg.h+3−0

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/qla2xxx/qla_def.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/qla2xxx/qla_gs.c+40−10

This diff is large: its 96 lines aren’t shown here.

drivers/scsi/qla2xxx/qla_init.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/qla2xxx/qla_iocb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/qla2xxx/qla_isr.c+7−7

This diff is large: its 52 lines aren’t shown here.

drivers/scsi/qla2xxx/qla_mbx.c+7−15

This diff is large: its 78 lines aren’t shown here.

drivers/scsi/qla2xxx/qla_nvme.c+14−1

This diff is large: its 29 lines aren’t shown here.

drivers/scsi/qla2xxx/qla_os.c+5−4

This diff is large: its 23 lines aren’t shown here.

drivers/scsi/qla2xxx/qla_sup.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/scsi/qla2xxx/qla_target.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/scsi/qla4xxx/ql4_os.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/qlogicpti.c+10−10

This diff is large: its 42 lines aren’t shown here.

drivers/scsi/scsi_debug.c+2−2

This diff is large: its 21 lines aren’t shown here.

drivers/scsi/scsi_error.c+14−14

This diff is large: its 117 lines aren’t shown here.

drivers/scsi/scsi_ioctl.c+2−2

This diff is large: its 17 lines aren’t shown here.

drivers/scsi/scsi_lib.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/smartpqi/smartpqi_init.c+8−9

This diff is large: its 75 lines aren’t shown here.

drivers/scsi/sr.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/scsi/st.c+4−4

This diff is large: its 35 lines aren’t shown here.

drivers/scsi/sun3_scsi.c+2−2

This diff is large: its 15 lines aren’t shown here.

drivers/scsi/sym53c8xx_2/sym_fw.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/sym53c8xx_2/sym_hipd.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/scsi/sym53c8xx_2/sym_nvram.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/ufs/ti-j721e-ufs.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/ufs/ufs-mediatek.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/ufs/ufs_bsg.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/ufs/ufshcd-pci.c+14−2

This diff is large: its 35 lines aren’t shown here.

drivers/scsi/ufs/ufshcd.c+22−17

This diff is large: its 132 lines aren’t shown here.

drivers/scsi/ufs/ufshcd.h+8−1

This diff is large: its 23 lines aren’t shown here.

drivers/scsi/virtio_scsi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/vmw_pvscsi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/wd33c93.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/xen-scsifront.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/soc/qcom/socinfo.c+11−11

This diff is large: its 91 lines aren’t shown here.

drivers/soc/tegra/pmc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/spi/Kconfig+3−0

This diff is large: its 8 lines aren’t shown here.

drivers/spi/spi-bcm2835aux.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/spi/spi-fsl-cpm.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/spi/spi-sprd-adi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/spi/spi-stm32.c+62−38

This diff is large: its 208 lines aren’t shown here.

drivers/spi/spi.c+20−1

This diff is large: its 56 lines aren’t shown here.

drivers/ssb/driver_chipcommon.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ssb/driver_mipscore.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ssb/scan.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/staging/media/atomisp/pci/atomisp_cmd.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/staging/media/atomisp/pci/atomisp_compat_css20.c+4−4

This diff is large: its 35 lines aren’t shown here.

drivers/staging/media/atomisp/pci/atomisp_ioctl.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/media/atomisp/pci/atomisp_v4l2.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/staging/media/atomisp/pci/hmm/hmm_bo.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/staging/media/atomisp/pci/sh_css.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/staging/media/hantro/hantro_g1_mpeg2_dec.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/staging/media/hantro/rk3399_vpu_hw_mpeg2_dec.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/staging/media/imx/imx-media-csi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/staging/media/sunxi/cedrus/cedrus.c+6−1

This diff is large: its 26 lines aren’t shown here.

drivers/staging/media/usbvision/usbvision-i2c.c+3−3

This diff is large: its 17 lines aren’t shown here.

drivers/target/iscsi/cxgbit/cxgbit_main.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/target/iscsi/iscsi_target.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/target/target_core_pr.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/target/target_core_sbc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/target/target_core_transport.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/target/tcm_fc/tfc_cmd.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/thermal/qcom/qcom-spmi-temp-alarm.c+2−2

This diff is large: its 17 lines aren’t shown here.

drivers/thermal/qcom/tsens-v0_1.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/thermal/qcom/tsens-v1.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/thermal/thermal_core.c+3−2

This diff is large: its 26 lines aren’t shown here.

drivers/thermal/ti-soc-thermal/omap4-thermal-data.c+12−11

This diff is large: its 33 lines aren’t shown here.

drivers/thermal/ti-soc-thermal/omap4xxx-bandgap.h+7−3

This diff is large: its 17 lines aren’t shown here.

drivers/thunderbolt/ctl.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/thunderbolt/switch.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/thunderbolt/tunnel.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/tty/hvc/hvc_xen.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/tty/mips_ejtag_fdc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/tty/n_gsm.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/tty/n_hdlc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/tty/n_r3964.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/tty/serial/8250/8250_em.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/tty/serial/8250/8250_exar.c+21−3

This diff is large: its 38 lines aren’t shown here.

drivers/tty/serial/8250/8250_fintek.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/tty/serial/8250/8250_pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/tty/serial/8250/8250_port.c+7−4

This diff is large: its 41 lines aren’t shown here.

drivers/tty/serial/8250/8250_uniphier.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/tty/serial/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/tty/serial/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/tty/serial/amba-pl011.c+9−7

This diff is large: its 51 lines aren’t shown here.

drivers/tty/serial/atmel_serial.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/tty/serial/omap-serial.c+0−2

This diff is large: its 16 lines aren’t shown here.

drivers/tty/serial/qcom_geni_serial.c+8−3

This diff is large: its 28 lines aren’t shown here.

drivers/tty/serial/rda-uart.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/tty/serial/samsung_tty.c+5−3

This diff is large: its 15 lines aren’t shown here.

drivers/tty/serial/serial-tegra.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/tty/serial/serial_core.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/tty/serial/stm32-usart.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/tty/serial/sunsu.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/tty/serial/sunzilog.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/tty/serial/xilinx_uartps.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/tty/tty_ioctl.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/tty/vt/vt.c+6−5

This diff is large: its 49 lines aren’t shown here.

drivers/tty/vt/vt_ioctl.c+11−1

This diff is large: its 24 lines aren’t shown here.

drivers/usb/c67x00/c67x00-sched.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/usb/class/cdc-acm.c+10−12

This diff is large: its 32 lines aren’t shown here.

drivers/usb/core/driver.c+38−2

This diff is large: its 59 lines aren’t shown here.

drivers/usb/core/generic.c+3−2

This diff is large: its 12 lines aren’t shown here.

drivers/usb/core/hcd-pci.c+4−1

This diff is large: its 24 lines aren’t shown here.

drivers/usb/core/hub.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/usb/core/quirks.c+7−0

This diff is large: its 28 lines aren’t shown here.

drivers/usb/dwc3/core.c+2−3

This diff is large: its 20 lines aren’t shown here.

drivers/usb/dwc3/gadget.c+89−18

This diff is large: its 217 lines aren’t shown here.

drivers/usb/gadget/function/f_mass_storage.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/usb/gadget/function/f_ncm.c+69−12

This diff is large: its 149 lines aren’t shown here.

drivers/usb/gadget/function/f_tcm.c+4−3

This diff is large: its 17 lines aren’t shown here.

drivers/usb/gadget/u_f.h+27−11

This diff is large: its 56 lines aren’t shown here.

drivers/usb/gadget/udc/atmel_usba_udc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/usb/gadget/udc/fsl_udc_core.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/usb/gadget/udc/pxa25x_udc.c+2−2

This diff is large: its 15 lines aren’t shown here.

drivers/usb/host/isp116x-hcd.c+3−3

This diff is large: its 22 lines aren’t shown here.

drivers/usb/host/ohci-exynos.c+2−3

This diff is large: its 12 lines aren’t shown here.

drivers/usb/host/pci-quirks.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/usb/host/xhci-dbgcap.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/usb/host/xhci-debugfs.c+4−4

This diff is large: its 22 lines aren’t shown here.

drivers/usb/host/xhci-hub.c+11−10

This diff is large: its 42 lines aren’t shown here.

drivers/usb/host/xhci-mem.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/usb/host/xhci-pci-renesas.c+1−18

This diff is large: its 33 lines aren’t shown here.

drivers/usb/host/xhci-ring.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/usb/host/xhci-tegra.c+3−1

This diff is large: its 18 lines aren’t shown here.

drivers/usb/host/xhci.c+3−2

This diff is large: its 22 lines aren’t shown here.

drivers/usb/misc/lvstest.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/usb/misc/yurex.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/usb/musb/cppi_dma.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/usb/musb/musb_core.c+6−7

This diff is large: its 56 lines aren’t shown here.

drivers/usb/musb/musb_dsps.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/usb/musb/musb_gadget_ep0.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/usb/musb/musb_host.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/usb/musb/musb_virthub.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/usb/musb/omap2430.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/usb/musb/tusb6010.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/usb/phy/phy-jz4770.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/usb/storage/sddr55.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/usb/storage/uas.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/usb/storage/unusual_devs.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/usb/storage/unusual_uas.h+14−0

This diff is large: its 28 lines aren’t shown here.

drivers/usb/typec/tcpm/tcpci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/usb/typec/tcpm/tcpm.c+25−3

This diff is large: its 47 lines aren’t shown here.

drivers/usb/typec/ucsi/displayport.c+1−8

This diff is large: its 34 lines aren’t shown here.

drivers/usb/typec/ucsi/ucsi.c+53−50

This diff is large: its 283 lines aren’t shown here.

drivers/usb/usbip/stub_dev.c+6−0

This diff is large: its 20 lines aren’t shown here.

drivers/vdpa/ifcvf/ifcvf_base.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/vdpa/ifcvf/ifcvf_main.c+7−2

This diff is large: its 25 lines aren’t shown here.

drivers/vdpa/mlx5/net/mlx5_vnet.c+25−25

This diff is large: its 94 lines aren’t shown here.

drivers/vfio/pci/vfio_pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/vfio/pci/vfio_pci_private.h+2−0

This diff is large: its 15 lines aren’t shown here.

drivers/vfio/pci/vfio_pci_rdwr.c+96−24

This diff is large: its 215 lines aren’t shown here.

drivers/vfio/vfio_iommu_type1.c+67−6

This diff is large: its 119 lines aren’t shown here.

drivers/vhost/iotlb.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/vhost/vhost.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/video/backlight/adp8860_bl.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/video/fbdev/acornfb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/video/fbdev/arcfb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/video/fbdev/atmel_lcdfb.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/video/fbdev/aty/radeon_pm.c+3−3

This diff is large: its 23 lines aren’t shown here.

drivers/video/fbdev/cirrusfb.c+2−2

This diff is large: its 14 lines aren’t shown here.

drivers/video/fbdev/controlfb.c+3−1

This diff is large: its 18 lines aren’t shown here.

drivers/video/fbdev/core/fbcon.c+23−2

This diff is large: its 53 lines aren’t shown here.

drivers/video/fbdev/core/fbmem.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/video/fbdev/efifb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/video/fbdev/fsl-diu-fb.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/video/fbdev/gxt4500.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/video/fbdev/hyperv_fb.c+2−2

This diff is large: its 16 lines aren’t shown here.

drivers/video/fbdev/i740fb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/video/fbdev/mmp/fb/mmpfb.c+0−2

This diff is large: its 9 lines aren’t shown here.

drivers/video/fbdev/nvidia/nv_hw.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/video/fbdev/offb.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/video/fbdev/omap/lcdc.c+2−2

This diff is large: its 16 lines aren’t shown here.

drivers/video/fbdev/omap/omapfb_main.c+10−10

This diff is large: its 62 lines aren’t shown here.

drivers/video/fbdev/omap2/omapfb/dss/dispc.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/video/fbdev/omap2/omapfb/omapfb-ioctl.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/video/fbdev/omap2/omapfb/omapfb-main.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/video/fbdev/pm2fb.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/video/fbdev/pxa168fb.c+0−4

This diff is large: its 18 lines aren’t shown here.

drivers/video/fbdev/pxafb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/video/fbdev/riva/fbdev.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/video/fbdev/s3c-fb.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/video/fbdev/sa1100fb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/video/fbdev/savage/savagefb_driver.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/video/fbdev/sh_mobile_lcdcfb.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/video/fbdev/sis/sis_main.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/video/fbdev/sm501fb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/video/fbdev/stifb.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/video/fbdev/tdfxfb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/video/fbdev/via/lcd.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/video/fbdev/xen-fbfront.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/watchdog/sc1200wdt.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/watchdog/wdrtas.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/xen/Kconfig+10−0

This diff is large: its 15 lines aren’t shown here.

drivers/xen/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

drivers/xen/balloon.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/xen/events/events_base.c+8−8

This diff is large: its 71 lines aren’t shown here.

drivers/xen/grant-table.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/xen/privcmd.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/xen/pvcalls-front.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/xen/unpopulated-alloc.c+183−0

This diff is large: its 184 lines aren’t shown here.

drivers/xen/xen-acpi-memhotplug.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/xen/xen-pciback/xenbus.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/xen/xen-scsiback.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/xen/xenbus/xenbus_client.c+11−5

This diff is large: its 44 lines aren’t shown here.

drivers/xen/xenbus/xenbus_probe_frontend.c+2−2

This diff is large: its 15 lines aren’t shown here.

drivers/xen/xlate_mmu.c+2−2

This diff is large: its 18 lines aren’t shown here.

fs/9p/vfs_file.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/adfs/dir_f.c+6−6

This diff is large: its 30 lines aren’t shown here.

fs/affs/amigaffs.c+27−0

This diff is large: its 52 lines aren’t shown here.

fs/affs/file.c+25−1

This diff is large: its 47 lines aren’t shown here.

fs/affs/inode.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/affs/super.c+3−3

This diff is large: its 27 lines aren’t shown here.

fs/afs/cmservice.c+8−8

This diff is large: its 72 lines aren’t shown here.

fs/afs/dynroot.c+11−9

This diff is large: its 27 lines aren’t shown here.

fs/afs/file.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/afs/flock.c+0−1

This diff is large: its 8 lines aren’t shown here.

fs/afs/fs_operation.c+1−0

This diff is large: its 8 lines aren’t shown here.

fs/afs/fs_probe.c+2−2

This diff is large: its 11 lines aren’t shown here.

fs/afs/fsclient.c+21−21

This diff is large: its 189 lines aren’t shown here.

fs/afs/internal.h+8−6

This diff is large: its 31 lines aren’t shown here.

fs/afs/misc.c+9−9

This diff is large: its 52 lines aren’t shown here.

fs/afs/proc.c+5−0

This diff is large: its 12 lines aren’t shown here.

fs/afs/rotate.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/afs/rxrpc.c+3−3

This diff is large: its 27 lines aren’t shown here.

fs/afs/vl_list.c+1−0

This diff is large: its 8 lines aren’t shown here.

fs/afs/vl_probe.c+51−31

This diff is large: its 183 lines aren’t shown here.

fs/afs/vl_rotate.c+6−1

This diff is large: its 25 lines aren’t shown here.

fs/afs/vlclient.c+12−12

This diff is large: its 108 lines aren’t shown here.

fs/afs/write.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/afs/yfsclient.c+25−25

This diff is large: its 225 lines aren’t shown here.

fs/aio.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/binfmt_flat.c+12−8

This diff is large: its 62 lines aren’t shown here.

fs/btrfs/block-group.c+3−1

This diff is large: its 25 lines aren’t shown here.

fs/btrfs/ctree.c+6−2

This diff is large: its 36 lines aren’t shown here.

fs/btrfs/ctree.h+3−3

This diff is large: its 27 lines aren’t shown here.

fs/btrfs/disk-io.c+1−0

This diff is large: its 8 lines aren’t shown here.

fs/btrfs/extent-tree.c+12−7

This diff is large: its 54 lines aren’t shown here.

fs/btrfs/extent_io.c+4−4

This diff is large: its 22 lines aren’t shown here.

fs/btrfs/extent_io.h+3−3

This diff is large: its 13 lines aren’t shown here.

fs/btrfs/file.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/btrfs/free-space-cache.c+1−1

This diff is large: its 16 lines aren’t shown here.

fs/btrfs/free-space-tree.c+4−0

This diff is large: its 11 lines aren’t shown here.

fs/btrfs/inode.c+14−15

This diff is large: its 93 lines aren’t shown here.

fs/btrfs/ioctl.c+20−7

This diff is large: its 48 lines aren’t shown here.

fs/btrfs/scrub.c+70−52

This diff is large: its 204 lines aren’t shown here.

fs/btrfs/super.c+1−0

This diff is large: its 8 lines aren’t shown here.

fs/btrfs/tree-checker.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/btrfs/tree-log.c+6−4

This diff is large: its 18 lines aren’t shown here.

fs/btrfs/volumes.c+2−1

This diff is large: its 24 lines aren’t shown here.

fs/buffer.c+10−1

This diff is large: its 25 lines aren’t shown here.

fs/ceph/caps.c+7−7

This diff is large: its 42 lines aren’t shown here.

fs/ceph/debugfs.c+2−2

This diff is large: its 18 lines aren’t shown here.

fs/ceph/dir.c+14−19

This diff is large: its 83 lines aren’t shown here.

fs/ceph/file.c+4−3

This diff is large: its 28 lines aren’t shown here.

fs/ceph/inode.c+9−10

This diff is large: its 44 lines aren’t shown here.

fs/ceph/mds_client.h+1−1

This diff is large: its 9 lines aren’t shown here.

fs/ceph/quota.c+2−2

This diff is large: its 15 lines aren’t shown here.

fs/ceph/super.h+38−35

This diff is large: its 113 lines aren’t shown here.

fs/cifs/cifsglob.h+15−0

This diff is large: its 20 lines aren’t shown here.

fs/cifs/cifssmb.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/cifs/connect.c+6−6

This diff is large: its 48 lines aren’t shown here.

fs/cifs/sess.c+3−3

This diff is large: its 27 lines aren’t shown here.

fs/cifs/smb2pdu.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/configfs/dir.c+2−2

This diff is large: its 14 lines aren’t shown here.

fs/dax.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/dlm/lock.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/erofs/zmap.c+3−3

This diff is large: its 27 lines aren’t shown here.

fs/eventpoll.c+15−15

This diff is large: its 76 lines aren’t shown here.

fs/ext2/file.c+4−2

This diff is large: its 21 lines aren’t shown here.

fs/ext2/inode.c+2−2

This diff is large: its 18 lines aren’t shown here.

fs/ext2/super.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/ext4/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

fs/ext4/balloc.c+12−4

This diff is large: its 46 lines aren’t shown here.

fs/ext4/block_validity.c+69−90

This diff is large: its 254 lines aren’t shown here.

fs/ext4/ext4.h+63−28

This diff is large: its 223 lines aren’t shown here.

fs/ext4/ext4_jbd2.c+25−0

This diff is large: its 39 lines aren’t shown here.

fs/ext4/extents.c+18−24

This diff is large: its 140 lines aren’t shown here.

fs/ext4/file.c+7−4

This diff is large: its 33 lines aren’t shown here.

fs/ext4/hash.c+2−2

This diff is large: its 18 lines aren’t shown here.

fs/ext4/indirect.c+9−11

This diff is large: its 81 lines aren’t shown here.

fs/ext4/inline.c+2−2

This diff is large: its 18 lines aren’t shown here.

fs/ext4/inode.c+16−16

This diff is large: its 114 lines aren’t shown here.

fs/ext4/ioctl.c+17−17

This diff is large: its 106 lines aren’t shown here.

fs/ext4/mballoc.c+244−45

This diff is large: its 540 lines aren’t shown here.

fs/ext4/mballoc.h+4−0

This diff is large: its 11 lines aren’t shown here.

fs/ext4/move_extent.c+2−2

This diff is large: its 11 lines aren’t shown here.

fs/ext4/namei.c+39−27

This diff is large: its 146 lines aren’t shown here.

fs/ext4/readpage.c+2−2

This diff is large: its 18 lines aren’t shown here.

fs/ext4/super.c+189−79

This diff is large: its 590 lines aren’t shown here.

fs/ext4/sysfs.c+13−0

This diff is large: its 62 lines aren’t shown here.

fs/ext4/xattr.c+1−2

This diff is large: its 10 lines aren’t shown here.

fs/f2fs/f2fs.h+1−1

This diff is large: its 9 lines aren’t shown here.

fs/f2fs/node.c+2−2

This diff is large: its 13 lines aren’t shown here.

fs/fcntl.c+2−2

This diff is large: its 18 lines aren’t shown here.

fs/fs-writeback.c+53−50

This diff is large: its 264 lines aren’t shown here.

fs/fs_context.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/fsopen.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/gfs2/bmap.c+2−2

This diff is large: its 18 lines aren’t shown here.

fs/gfs2/log.c+31−0

This diff is large: its 45 lines aren’t shown here.

fs/gfs2/quota.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/gfs2/trans.c+1−0

This diff is large: its 8 lines aren’t shown here.

fs/hfsplus/wrapper.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/io-wq.c+19−2

This diff is large: its 35 lines aren’t shown here.

fs/io_uring.c+200−140

This diff is large: its 701 lines aren’t shown here.

fs/iomap/seek.c+2−2

This diff is large: its 18 lines aren’t shown here.

fs/jbd2/journal.c+9−7

This diff is large: its 66 lines aren’t shown here.

fs/jbd2/recovery.c+12−34

This diff is large: its 70 lines aren’t shown here.

fs/jbd2/transaction.c+27−6

This diff is large: its 76 lines aren’t shown here.

fs/jffs2/fs.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/jffs2/readinode.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/libfs.c+2−2

This diff is large: its 14 lines aren’t shown here.

fs/locks.c+3−3

This diff is large: its 27 lines aren’t shown here.

fs/nfs/blocklayout/blocklayout.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/nfs/dir.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/nfs/filelayout/filelayout.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/nfs/flexfilelayout/flexfilelayout.c+2−2

This diff is large: its 18 lines aren’t shown here.

fs/nfs/fs_context.c+12−10

This diff is large: its 73 lines aren’t shown here.

fs/nfs/nfs3acl.c+2−2

This diff is large: its 18 lines aren’t shown here.

fs/nfs/nfs4file.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/nfs/nfs4idmap.c+2−2

This diff is large: its 18 lines aren’t shown here.

fs/nfs/nfs4proc.c+16−16

This diff is large: its 126 lines aren’t shown here.

fs/nfs/nfs4state.c+7−7

This diff is large: its 59 lines aren’t shown here.

fs/nfs/pagelist.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/nfs/pnfs.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/nfs_common/nfsacl.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/nfsd/blocklayout.c+2−2

This diff is large: its 16 lines aren’t shown here.

fs/nfsd/nfs4callback.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/nfsd/nfs4layouts.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/nfsd/nfs4proc.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/nfsd/nfs4state.c+8−6

This diff is large: its 63 lines aren’t shown here.

fs/nfsd/nfsfh.c+2−2

This diff is large: its 18 lines aren’t shown here.

fs/nfsd/nfsproc.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/nfsd/nfssvc.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/nfsd/vfs.c+2−2

This diff is large: its 18 lines aren’t shown here.

fs/nilfs2/bmap.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/nilfs2/recovery.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/nilfs2/segment.c+12−7

This diff is large: its 66 lines aren’t shown here.

fs/notify/fanotify/fanotify_user.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/ocfs2/cluster/quorum.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/pstore/zone.c+0−1

This diff is large: its 8 lines aren’t shown here.

fs/quota/quota.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/romfs/storage.c+1−3

This diff is large: its 12 lines aren’t shown here.

fs/seq_file.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/signalfd.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/squashfs/block.c+5−1

This diff is large: its 13 lines aren’t shown here.

fs/ubifs/lprops.c+2−2

This diff is large: its 18 lines aren’t shown here.

fs/udf/symlink.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/ufs/util.h+6−6

This diff is large: its 54 lines aren’t shown here.

fs/vboxsf/utils.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/xfs/libxfs/xfs_attr_leaf.c+5−3

This diff is large: its 23 lines aren’t shown here.

fs/xfs/libxfs/xfs_bmap.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/xfs/libxfs/xfs_ialloc.c+2−2

This diff is large: its 18 lines aren’t shown here.

fs/xfs/libxfs/xfs_trans_inode.c+2−2

This diff is large: its 12 lines aren’t shown here.

fs/xfs/libxfs/xfs_trans_space.h+1−1

This diff is large: its 9 lines aren’t shown here.

fs/xfs/xfs_bmap_util.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/xfs/xfs_file.c+10−2

This diff is large: its 33 lines aren’t shown here.

include/drm/drm_hdcp.h+3−0

This diff is large: its 10 lines aren’t shown here.

include/drm/drm_modeset_lock.h+7−2

This diff is large: its 36 lines aren’t shown here.

include/linux/bvec.h+8−1

This diff is large: its 20 lines aren’t shown here.

include/linux/ceph/ceph_features.h+4−4

This diff is large: its 19 lines aren’t shown here.

include/linux/compat.h+3−3

This diff is large: its 15 lines aren’t shown here.

include/linux/compiler_attributes.h+1−7

This diff is large: its 16 lines aren’t shown here.

include/linux/compiler_types.h+2−2

This diff is large: its 11 lines aren’t shown here.

include/linux/cpufreq.h+2−2

This diff is large: its 11 lines aren’t shown here.

include/linux/cpuhotplug.h+1−0

This diff is large: its 8 lines aren’t shown here.

include/linux/cpuidle.h+7−6

This diff is large: its 20 lines aren’t shown here.

include/linux/dma-direct.h+0−3

This diff is large: its 10 lines aren’t shown here.

include/linux/dma-mapping.h+3−2

This diff is large: its 12 lines aren’t shown here.

include/linux/entry-common.h+42−9

This diff is large: its 71 lines aren’t shown here.

include/linux/filter.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/linux/fs.h+5−2

This diff is large: its 25 lines aren’t shown here.

include/linux/hid.h+29−13

This diff is large: its 72 lines aren’t shown here.

include/linux/irqflags.h+39−34

This diff is large: its 121 lines aren’t shown here.

include/linux/jbd2.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/linux/jhash.h+13−13

This diff is large: its 40 lines aren’t shown here.

include/linux/kernel.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/linux/ksm.h+0−7

This diff is large: its 21 lines aren’t shown here.

include/linux/libata.h+1−0

This diff is large: its 8 lines aren’t shown here.

include/linux/lockdep.h+13−5

This diff is large: its 49 lines aren’t shown here.

include/linux/log2.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/linux/memremap.h+4−5

This diff is large: its 24 lines aren’t shown here.

include/linux/mm.h+8−3

This diff is large: its 27 lines aren’t shown here.

include/linux/mmu_context.h+5−0

This diff is large: its 16 lines aren’t shown here.

include/linux/netfilter/nf_conntrack_sctp.h+2−0

This diff is large: its 9 lines aren’t shown here.

include/linux/netfilter/nfnetlink.h+1−2

This diff is large: its 10 lines aren’t shown here.

include/linux/netfilter_ipv6.h+0−18

This diff is large: its 32 lines aren’t shown here.

include/linux/pgtable.h+2−0

This diff is large: its 10 lines aren’t shown here.

include/linux/phylink.h+2−1

This diff is large: its 10 lines aren’t shown here.

include/linux/sched.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/linux/sched/user.h+3−0

This diff is large: its 10 lines aren’t shown here.

include/linux/signal.h+6−6

This diff is large: its 44 lines aren’t shown here.

include/linux/skbuff.h+17−8

This diff is large: its 61 lines aren’t shown here.

include/linux/soc/ti/ti_sci_protocol.h+13−0

This diff is large: its 34 lines aren’t shown here.

include/linux/vm_event_item.h+1−0

This diff is large: its 8 lines aren’t shown here.

include/math-emu/op-common.h+5−5

This diff is large: its 45 lines aren’t shown here.

include/net/addrconf.h+2−1

This diff is large: its 10 lines aren’t shown here.

include/net/af_rxrpc.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/net/ndisc.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/net/netfilter/nf_tables.h+2−0

This diff is large: its 9 lines aren’t shown here.

include/soc/nps/common.h+6−0

This diff is large: its 13 lines aren’t shown here.

include/trace/events/ext4.h+75−10

This diff is large: its 126 lines aren’t shown here.

include/trace/events/mmflags.h+2−0

This diff is large: its 9 lines aren’t shown here.

include/trace/events/rxrpc.h+22−5

This diff is large: its 99 lines aren’t shown here.

include/trace/events/writeback.h+6−8

This diff is large: its 43 lines aren’t shown here.

include/uapi/linux/bpf.h+5−5

This diff is large: its 36 lines aren’t shown here.

include/uapi/linux/in.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/uapi/linux/netfilter/nf_tables.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/xen/arm/page.h+5−1

This diff is large: its 13 lines aren’t shown here.

include/xen/balloon.h+4−0

This diff is large: its 15 lines aren’t shown here.

include/xen/xen.h+9−0

This diff is large: its 14 lines aren’t shown here.

init/initramfs.c+1−1

This diff is large: its 9 lines aren’t shown here.

ipc/ipc_sysctl.c+1−1

This diff is large: its 9 lines aren’t shown here.

ipc/sem.c+2−2

This diff is large: its 18 lines aren’t shown here.

ipc/shm.c+2−2

This diff is large: its 18 lines aren’t shown here.

kernel/auditfilter.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/bpf/bpf_iter.c+14−1

This diff is large: its 43 lines aren’t shown here.

kernel/bpf/cgroup.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/bpf/cpumap.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/bpf/stackmap.c+14−10

This diff is large: its 38 lines aren’t shown here.

kernel/bpf/syscall.c+2−2

This diff is large: its 18 lines aren’t shown here.

kernel/bpf/task_iter.c+4−2

This diff is large: its 24 lines aren’t shown here.

kernel/bpf/verifier.c+2−2

This diff is large: its 18 lines aren’t shown here.

kernel/capability.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/compat.c+3−3

This diff is large: its 15 lines aren’t shown here.

kernel/debug/gdbstub.c+3−3

This diff is large: its 26 lines aren’t shown here.

kernel/debug/kdb/kdb_keyboard.c+2−2

This diff is large: its 14 lines aren’t shown here.

kernel/debug/kdb/kdb_support.c+3−3

This diff is large: its 27 lines aren’t shown here.

kernel/dma/direct.c+9−4

This diff is large: its 34 lines aren’t shown here.

kernel/dma/pool.c+79−68

This diff is large: its 201 lines aren’t shown here.

kernel/entry/common.c+31−7

This diff is large: its 57 lines aren’t shown here.

kernel/events/core.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/events/uprobes.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/fork.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/gcov/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

kernel/irq/handle.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/irq/manage.c+2−2

This diff is large: its 18 lines aren’t shown here.

kernel/irq/matrix.c+7−0

This diff is large: its 14 lines aren’t shown here.

kernel/kallsyms.c+2−2

This diff is large: its 15 lines aren’t shown here.

kernel/locking/lockdep.c+11−7

This diff is large: its 87 lines aren’t shown here.

kernel/power/hibernate.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/power/qos.c+2−2

This diff is large: its 18 lines aren’t shown here.

kernel/relay.c+1−0

This diff is large: its 8 lines aren’t shown here.

kernel/sched/core.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/sched/idle.c+11−14

This diff is large: its 87 lines aren’t shown here.

kernel/sched/topology.c+3−3

This diff is large: its 17 lines aren’t shown here.

kernel/signal.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/sys.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/sysctl.c+1−2

This diff is large: its 10 lines aren’t shown here.

kernel/time/hrtimer.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/time/posix-timers.c+2−2

This diff is large: its 15 lines aren’t shown here.

kernel/time/tick-broadcast.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/time/timer.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/trace/blktrace.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/trace/trace_events_filter.c+2−2

This diff is large: its 18 lines aren’t shown here.

kernel/watch_queue.c+8−0

This diff is large: its 22 lines aren’t shown here.

lib/Makefile+6−1

This diff is large: its 18 lines aren’t shown here.

lib/bootconfig.c+1−1

This diff is large: its 9 lines aren’t shown here.

lib/glob.c+1−1

This diff is large: its 9 lines aren’t shown here.

lib/vsprintf.c+4−3

This diff is large: its 28 lines aren’t shown here.

lib/xz/xz_dec_lzma2.c+2−2

This diff is large: its 18 lines aren’t shown here.

lib/xz/xz_dec_stream.c+8−8

This diff is large: its 72 lines aren’t shown here.

lib/zstd/decompress.c+5−5

This diff is large: its 45 lines aren’t shown here.

mm/gup.c+6−36

This diff is large: its 89 lines aren’t shown here.

mm/huge_memory.c+4−3

This diff is large: its 17 lines aren’t shown here.

mm/hugetlb.c+37−12

This diff is large: its 86 lines aren’t shown here.

mm/hugetlb_cgroup.c+2−2

This diff is large: its 18 lines aren’t shown here.

mm/khugepaged.c+2−2

This diff is large: its 18 lines aren’t shown here.

mm/ksm.c+4−25

This diff is large: its 43 lines aren’t shown here.

mm/madvise.c+1−1

This diff is large: its 11 lines aren’t shown here.

mm/memcontrol.c+6−0

This diff is large: its 20 lines aren’t shown here.

mm/memory.c+45−55

This diff is large: its 238 lines aren’t shown here.

mm/memremap.c+1−1

This diff is large: its 9 lines aren’t shown here.

mm/migrate.c+18−11

This diff is large: its 43 lines aren’t shown here.

mm/page_alloc.c+6−1

This diff is large: its 21 lines aren’t shown here.

mm/rmap.c+7−2

This diff is large: its 17 lines aren’t shown here.

mm/rodata_test.c+1−0

This diff is large: its 8 lines aren’t shown here.

mm/slub.c+6−6

This diff is large: its 35 lines aren’t shown here.

mm/vmalloc.c+2−0

This diff is large: its 9 lines aren’t shown here.

mm/vmscan.c+8−0

This diff is large: its 15 lines aren’t shown here.

mm/vmstat.c+1−0

This diff is large: its 8 lines aren’t shown here.

net/8021q/vlan_dev.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/9p/trans_xen.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/atm/common.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/atm/lec.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/atm/resources.c+4−4

This diff is large: its 36 lines aren’t shown here.

net/batman-adv/bat_v_ogm.c+6−5

This diff is large: its 25 lines aren’t shown here.

net/batman-adv/bridge_loop_avoidance.c+4−1

This diff is large: its 12 lines aren’t shown here.

net/batman-adv/gateway_client.c+4−2

This diff is large: its 13 lines aren’t shown here.

net/bpf/test_run.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/bridge/netfilter/ebtables.c+4−0

This diff is large: its 11 lines aren’t shown here.

net/bridge/netfilter/nf_conntrack_bridge.c+6−2

This diff is large: its 28 lines aren’t shown here.

net/caif/cfrfml.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/can/j1939/socket.c+15−1

This diff is large: its 44 lines aren’t shown here.

net/can/j1939/transport.c+94−30

This diff is large: its 309 lines aren’t shown here.

net/ceph/ceph_hash.c+10−10

This diff is large: its 46 lines aren’t shown here.

net/ceph/crush/mapper.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/ceph/messenger.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/ceph/mon_client.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/ceph/osd_client.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/core/dev.c+16−13

This diff is large: its 104 lines aren’t shown here.

net/core/dev_ioctl.c+3−3

This diff is large: its 27 lines aren’t shown here.

net/core/devlink.c+3−3

This diff is large: its 20 lines aren’t shown here.

net/core/drop_monitor.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/core/filter.c+63−14

This diff is large: its 112 lines aren’t shown here.

net/core/netpoll.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/core/pktgen.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/core/skbuff.c+11−5

This diff is large: its 44 lines aren’t shown here.

net/core/skmsg.c+0−1

This diff is large: its 8 lines aren’t shown here.

net/core/sock.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/dccp/ccids/ccid3.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/dccp/feat.c+2−1

This diff is large: its 10 lines aren’t shown here.

net/dccp/input.c+5−5

This diff is large: its 45 lines aren’t shown here.

net/dccp/options.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/dccp/output.c+4−4

This diff is large: its 33 lines aren’t shown here.

net/dccp/proto.c+4−4

This diff is large: its 36 lines aren’t shown here.

net/decnet/af_decnet.c+3−3

This diff is large: its 24 lines aren’t shown here.

net/decnet/dn_nsp_in.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/decnet/dn_table.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/decnet/sysctl_net_decnet.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/dsa/slave.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/ethtool/features.c+10−9

This diff is large: its 43 lines aren’t shown here.

net/ieee802154/6lowpan/reassembly.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/ieee802154/6lowpan/rx.c+2−2

This diff is large: its 14 lines aren’t shown here.

net/ipv4/Kconfig+7−7

This diff is large: its 21 lines aren’t shown here.

net/ipv4/fib_trie.c+2−1

This diff is large: its 10 lines aren’t shown here.

net/ipv4/netfilter/nf_nat_pptp.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/ipv4/nexthop.c+4−1

This diff is large: its 19 lines aren’t shown here.

net/ipv4/raw.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/ipv6/addrconf.c+23−37

This diff is large: its 99 lines aren’t shown here.

net/ipv6/ip6_tunnel.c+9−1

This diff is large: its 17 lines aren’t shown here.

net/ipv6/netfilter.c+0−3

This diff is large: its 10 lines aren’t shown here.

net/ipv6/sysctl_net_ipv6.c+2−1

This diff is large: its 17 lines aren’t shown here.

net/iucv/af_iucv.c+5−5

This diff is large: its 40 lines aren’t shown here.

net/l3mdev/l3mdev.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/mac80211/airtime.c+146−56

This diff is large: its 273 lines aren’t shown here.

net/mac80211/sta_info.h+3−2

This diff is large: its 26 lines aren’t shown here.

net/mac80211/status.c+23−20

This diff is large: its 108 lines aren’t shown here.

net/mpls/af_mpls.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/mptcp/protocol.c+12−8

This diff is large: its 78 lines aren’t shown here.

net/ncsi/ncsi-manage.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/netfilter/ipvs/ip_vs_proto_tcp.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/netfilter/ipvs/ip_vs_proto_udp.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/netfilter/nf_conntrack_pptp.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/netfilter/nf_conntrack_proto_sctp.c+35−4

This diff is large: its 72 lines aren’t shown here.

net/netfilter/nf_conntrack_proto_tcp.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/netfilter/nf_conntrack_proto_udp.c+10−16

This diff is large: its 55 lines aren’t shown here.

net/netfilter/nf_tables_api.c+35−35

This diff is large: its 158 lines aren’t shown here.

net/netfilter/nfnetlink.c+8−3

This diff is large: its 19 lines aren’t shown here.

net/netfilter/nfnetlink_log.c+1−2

This diff is large: its 10 lines aren’t shown here.

net/netfilter/nfnetlink_queue.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/netfilter/nft_compat.c+14−23

This diff is large: its 100 lines aren’t shown here.

net/netfilter/nft_exthdr.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/netfilter/nft_flow_offload.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/netfilter/nft_payload.c+3−1

This diff is large: its 11 lines aren’t shown here.

net/netfilter/nft_set_rbtree.c+47−10

This diff is large: its 118 lines aren’t shown here.

net/netfilter/xt_recent.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/netlabel/netlabel_domainhash.c+30−29

This diff is large: its 99 lines aren’t shown here.

net/netlink/af_netlink.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/netlink/policy.c+4−1

This diff is large: its 19 lines aren’t shown here.

net/netrom/nr_in.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/netrom/nr_route.c+4−4

This diff is large: its 36 lines aren’t shown here.

net/openvswitch/conntrack.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/openvswitch/flow.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/packet/af_packet.c+7−2

This diff is large: its 30 lines aren’t shown here.

net/phonet/pep.c+5−5

This diff is large: its 41 lines aren’t shown here.

net/qrtr/qrtr.c+11−9

This diff is large: its 35 lines aren’t shown here.

net/rds/send.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/rose/rose_in.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/rose/rose_route.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/rxrpc/af_rxrpc.c+3−3

This diff is large: its 27 lines aren’t shown here.

net/rxrpc/ar-internal.h+8−5

This diff is large: its 34 lines aren’t shown here.

net/rxrpc/call_accept.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/rxrpc/call_object.c+1−0

This diff is large: its 8 lines aren’t shown here.

net/rxrpc/conn_client.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/rxrpc/input.c+73−56

This diff is large: its 222 lines aren’t shown here.

net/rxrpc/local_object.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/rxrpc/output.c+61−21

This diff is large: its 160 lines aren’t shown here.

net/rxrpc/peer_event.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/rxrpc/peer_object.c+13−3

This diff is large: its 25 lines aren’t shown here.

net/rxrpc/recvmsg.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/rxrpc/rtt.c+2−1

This diff is large: its 17 lines aren’t shown here.

net/rxrpc/rxkad.c+2−1

This diff is large: its 17 lines aren’t shown here.

net/rxrpc/sendmsg.c+3−3

This diff is large: its 25 lines aren’t shown here.

net/sched/act_ct.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/sched/sch_cake.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/sched/sch_red.c+4−16

This diff is large: its 28 lines aren’t shown here.

net/sched/sch_taprio.c+24−6

This diff is large: its 66 lines aren’t shown here.

net/sctp/ipv6.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/sctp/outqueue.c+3−3

This diff is large: its 27 lines aren’t shown here.

net/sctp/sm_make_chunk.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/sctp/sm_sideeffect.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/sctp/sm_statefuns.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/sctp/socket.c+6−10

This diff is large: its 55 lines aren’t shown here.

net/sctp/stream.c+4−2

This diff is large: its 30 lines aren’t shown here.

net/smc/smc_close.c+9−8

This diff is large: its 55 lines aren’t shown here.

net/smc/smc_core.c+3−0

This diff is large: its 17 lines aren’t shown here.

net/smc/smc_diag.c+9−7

This diff is large: its 23 lines aren’t shown here.

net/smc/smc_llc.c+14−1

This diff is large: its 32 lines aren’t shown here.

net/socket.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/sunrpc/auth_gss/gss_krb5_wrap.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/sunrpc/auth_gss/trace.c+0−1

This diff is large: its 8 lines aren’t shown here.

net/sunrpc/clnt.c+11−11

This diff is large: its 89 lines aren’t shown here.

net/sunrpc/xprt.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/sunrpc/xprtrdma/verbs.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/sunrpc/xprtsock.c+4−4

This diff is large: its 36 lines aren’t shown here.

net/tipc/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

net/tipc/bearer.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/tipc/crypto.c+11−3

This diff is large: its 41 lines aren’t shown here.

net/tipc/group.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/tipc/link.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/tipc/netlink_compat.c+11−1

This diff is large: its 27 lines aren’t shown here.

net/tipc/socket.c+8−5

This diff is large: its 43 lines aren’t shown here.

net/tipc/udp_media.c+3−5

This diff is large: its 29 lines aren’t shown here.

net/unix/af_unix.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/wireless/chan.c+13−6

This diff is large: its 55 lines aren’t shown here.

net/wireless/mlme.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/wireless/nl80211.c+11−11

This diff is large: its 99 lines aren’t shown here.

net/wireless/reg.c+3−0

This diff is large: its 10 lines aren’t shown here.

net/wireless/scan.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/wireless/sme.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/wireless/util.c+7−5

This diff is large: its 35 lines aren’t shown here.

net/wireless/wext-compat.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/x25/x25_facilities.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/x25/x25_in.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/xfrm/xfrm_policy.c+1−1

This diff is large: its 9 lines aren’t shown here.

samples/bpf/hbm.c+1−1

This diff is large: its 9 lines aren’t shown here.

scripts/Makefile.extrawarn+1−1

This diff is large: its 16 lines aren’t shown here.

scripts/checkpatch.pl+2−2

This diff is large: its 11 lines aren’t shown here.

scripts/extract-cert.c+1−1

This diff is large: its 9 lines aren’t shown here.

scripts/genksyms/keywords.c+2−2

This diff is large: its 12 lines aren’t shown here.

scripts/kconfig/nconf.c+0−1

This diff is large: its 8 lines aren’t shown here.

scripts/kconfig/qconf.cc+77−79

This diff is large: its 276 lines aren’t shown here.

scripts/kconfig/qconf.h+3−3

This diff is large: its 27 lines aren’t shown here.

scripts/kconfig/streamline_config.pl+4−1

This diff is large: its 12 lines aren’t shown here.

security/apparmor/domain.c+1−1

This diff is large: its 9 lines aren’t shown here.

security/apparmor/lib.c+2−2

This diff is large: its 16 lines aren’t shown here.

security/integrity/ima/ima_appraise.c+2−2

This diff is large: its 18 lines aren’t shown here.

security/integrity/ima/ima_policy.c+4−4

This diff is large: its 29 lines aren’t shown here.

security/integrity/ima/ima_template_lib.c+1−1

This diff is large: its 9 lines aren’t shown here.

security/keys/process_keys.c+3−3

This diff is large: its 27 lines aren’t shown here.

security/keys/request_key.c+4−4

This diff is large: its 31 lines aren’t shown here.

security/selinux/hooks.c+1−7

This diff is large: its 36 lines aren’t shown here.

security/selinux/ss/mls.c+1−3

This diff is large: its 18 lines aren’t shown here.

security/smack/smack_lsm.c+1−1

This diff is large: its 9 lines aren’t shown here.

security/tomoyo/common.c+9−9

This diff is large: its 75 lines aren’t shown here.

security/tomoyo/file.c+1−1

This diff is large: its 9 lines aren’t shown here.

sound/core/oss/mulaw.c+2−2

This diff is large: its 11 lines aren’t shown here.

sound/core/timer.c+3−4

This diff is large: its 22 lines aren’t shown here.

sound/firewire/amdtp-stream.c+4−4

This diff is large: its 30 lines aren’t shown here.

sound/firewire/digi00x/digi00x.c+5−0

This diff is large: its 27 lines aren’t shown here.

sound/firewire/tascam/tascam.c+29−4

This diff is large: its 51 lines aren’t shown here.

sound/hda/hdac_bus.c+12−0

This diff is large: its 19 lines aren’t shown here.

sound/hda/hdac_controller.c+0−11

This diff is large: its 18 lines aren’t shown here.

sound/hda/hdac_device.c+2−0

This diff is large: its 9 lines aren’t shown here.

sound/hda/intel-dsp-config.c+5−5

This diff is large: its 45 lines aren’t shown here.

sound/isa/sscape.c+3−3

This diff is large: its 27 lines aren’t shown here.

sound/pci/asihpi/asihpi.c+4−5

This diff is large: its 24 lines aren’t shown here.

sound/pci/ca0106/ca0106_main.c+2−1

This diff is large: its 10 lines aren’t shown here.

sound/pci/hda/hda_intel.c+3−4

This diff is large: its 22 lines aren’t shown here.

sound/pci/hda/hda_tegra.c+7−0

This diff is large: its 21 lines aren’t shown here.

sound/pci/hda/patch_hdmi.c+7−0

This diff is large: its 35 lines aren’t shown here.

sound/pci/hda/patch_realtek.c+46−1

This diff is large: its 93 lines aren’t shown here.

sound/pci/riptide/riptide.c+3−3

This diff is large: its 21 lines aren’t shown here.

sound/pci/rme9652/hdsp.c+3−3

This diff is large: its 21 lines aren’t shown here.

sound/pci/rme9652/hdspm.c+3−4

This diff is large: its 22 lines aren’t shown here.

sound/ppc/snd_ps3.c+2−2

This diff is large: its 17 lines aren’t shown here.

sound/soc/amd/acp3x-rt5682-max9836.c+1−1

This diff is large: its 9 lines aren’t shown here.

sound/soc/amd/renoir/acp3x-pdm-dma.c+9−20

This diff is large: its 58 lines aren’t shown here.

sound/soc/atmel/mchp-i2s-mcc.c+1−1

This diff is large: its 9 lines aren’t shown here.

sound/soc/codecs/jz4770.c+1−1

This diff is large: its 9 lines aren’t shown here.

sound/soc/codecs/msm8916-wcd-analog.c+2−2

This diff is large: its 11 lines aren’t shown here.

sound/soc/codecs/pcm186x.c+1−1

This diff is large: its 9 lines aren’t shown here.

sound/soc/codecs/wm8958-dsp2.c+4−0

This diff is large: its 13 lines aren’t shown here.

sound/soc/codecs/wm8962.c+1−1

This diff is large: its 16 lines aren’t shown here.

sound/soc/codecs/wm8994.c+44−16

This diff is large: its 129 lines aren’t shown here.

sound/soc/fsl/fsl-asoc-card.c+70−84

This diff is large: its 247 lines aren’t shown here.

sound/soc/fsl/fsl_esai.c+3−4

This diff is large: its 22 lines aren’t shown here.

sound/soc/fsl/fsl_ssi.c+1−1

This diff is large: its 9 lines aren’t shown here.

sound/soc/fsl/mpc5200_dma.c+0−1

This diff is large: its 8 lines aren’t shown here.

sound/soc/hisilicon/hi6210-i2s.c+2−2

This diff is large: its 16 lines aren’t shown here.

sound/soc/intel/atom/sst-mfld-platform-pcm.c+3−2

This diff is large: its 20 lines aren’t shown here.

sound/soc/intel/baytrail/sst-baytrail-pcm.c+1−1

This diff is large: its 9 lines aren’t shown here.

sound/soc/intel/boards/bytcht_es8316.c+1−1

This diff is large: its 9 lines aren’t shown here.

sound/soc/intel/boards/bytcr_rt5651.c+2−2

This diff is large: its 18 lines aren’t shown here.

sound/soc/intel/skylake/skl-pcm.c+1−1

This diff is large: its 9 lines aren’t shown here.

sound/soc/meson/axg-tdm-interface.c+5−5

This diff is large: its 31 lines aren’t shown here.

sound/soc/pxa/pxa-ssp.c+1−1

This diff is large: its 9 lines aren’t shown here.

sound/soc/qcom/qdsp6/q6afe-dai.c+105−105

This diff is large: its 312 lines aren’t shown here.

sound/soc/qcom/qdsp6/q6routing.c+16−0

This diff is large: its 30 lines aren’t shown here.

sound/soc/rockchip/rockchip_pdm.c+3−3

This diff is large: its 17 lines aren’t shown here.

sound/soc/samsung/i2s.c+1−1

This diff is large: its 9 lines aren’t shown here.

sound/soc/sh/siu_pcm.c+4−6

This diff is large: its 25 lines aren’t shown here.

sound/soc/soc-component.c+1−1

This diff is large: its 9 lines aren’t shown here.

sound/soc/soc-core.c+1−1

This diff is large: its 9 lines aren’t shown here.

sound/soc/soc-topology.c+2−2

This diff is large: its 18 lines aren’t shown here.

sound/soc/sof/intel/hda-dai.c+2−2

This diff is large: its 18 lines aren’t shown here.

sound/soc/sof/pcm.c+2−2

This diff is large: its 18 lines aren’t shown here.

sound/soc/tegra/tegra186_dspk.c+2−2

This diff is large: its 18 lines aren’t shown here.

sound/soc/tegra/tegra210_admaif.c+2−2

This diff is large: its 18 lines aren’t shown here.

sound/soc/tegra/tegra210_ahub.c+2−2

This diff is large: its 18 lines aren’t shown here.

sound/soc/tegra/tegra210_dmic.c+2−2

This diff is large: its 18 lines aren’t shown here.

sound/soc/tegra/tegra210_i2s.c+2−2

This diff is large: its 18 lines aren’t shown here.

sound/soc/ti/davinci-i2s.c+1−1

This diff is large: its 9 lines aren’t shown here.

sound/soc/ti/n810.c+1−1

This diff is large: its 9 lines aren’t shown here.

sound/soc/ti/omap-dmic.c+2−2

This diff is large: its 13 lines aren’t shown here.

sound/soc/ti/omap-mcpdm.c+4−4

This diff is large: its 24 lines aren’t shown here.

sound/soc/ti/rx51.c+1−1

This diff is large: its 9 lines aren’t shown here.

sound/soc/txx9/txx9aclc.c+3−4

This diff is large: its 22 lines aren’t shown here.

sound/soc/zte/zx-i2s.c+2−2

This diff is large: its 18 lines aren’t shown here.

sound/soc/zte/zx-spdif.c+1−1

This diff is large: its 9 lines aren’t shown here.

sound/usb/midi.c+3−4

This diff is large: its 22 lines aren’t shown here.

sound/usb/misc/ua101.c+3−4

This diff is large: its 22 lines aren’t shown here.

sound/usb/mixer.c+7−1

This diff is large: its 22 lines aren’t shown here.

sound/usb/pcm.c+2−0

This diff is large: its 14 lines aren’t shown here.

sound/usb/quirks-table.h+99−13

This diff is large: its 159 lines aren’t shown here.

sound/usb/quirks.c+11−0

This diff is large: its 32 lines aren’t shown here.

sound/usb/usbaudio.h+1−0

This diff is large: its 8 lines aren’t shown here.

sound/x86/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

tools/bpf/bpftool/btf_dumper.c+1−1

This diff is large: its 9 lines aren’t shown here.

tools/bpf/bpftool/gen.c+18−4

This diff is large: its 57 lines aren’t shown here.

tools/bpf/bpftool/link.c+2−2

This diff is large: its 18 lines aren’t shown here.

tools/bpf/bpftool/main.h+9−1

This diff is large: its 17 lines aren’t shown here.

tools/bpf/bpftool/pids.c+2−0

This diff is large: its 9 lines aren’t shown here.

tools/bpf/bpftool/prog.c+8−8

This diff is large: its 69 lines aren’t shown here.

tools/bpf/resolve_btfids/main.c+36−0

This diff is large: its 50 lines aren’t shown here.

tools/include/uapi/linux/bpf.h+5−5

This diff is large: its 36 lines aren’t shown here.

tools/include/uapi/linux/perf_event.h+1−1

This diff is large: its 9 lines aren’t shown here.

tools/lib/bpf/bpf_helpers.h+1−1

This diff is large: its 9 lines aren’t shown here.

tools/lib/bpf/btf.c+80−3

This diff is large: its 119 lines aren’t shown here.

tools/lib/bpf/btf.h+2−0

This diff is large: its 9 lines aren’t shown here.

tools/lib/bpf/btf_dump.c+37−2

This diff is large: its 95 lines aren’t shown here.

tools/lib/bpf/libbpf.c+22−12

This diff is large: its 99 lines aren’t shown here.

tools/lib/bpf/libbpf.map+2−0

This diff is large: its 8 lines aren’t shown here.

tools/lib/traceevent/event-parse.c+1−1

This diff is large: its 9 lines aren’t shown here.

tools/perf/Documentation/perf-record.txt+4−0

This diff is large: its 11 lines aren’t shown here.

tools/perf/Documentation/perf-stat.txt+7−0

This diff is large: its 21 lines aren’t shown here.

tools/perf/bench/synthesize.c+2−2

This diff is large: its 11 lines aren’t shown here.

tools/perf/builtin-record.c+1−1

This diff is large: its 9 lines aren’t shown here.

tools/perf/builtin-report.c+3−0

This diff is large: its 10 lines aren’t shown here.

tools/perf/builtin-sched.c+5−1

This diff is large: its 20 lines aren’t shown here.

tools/perf/builtin-stat.c+5−3

This diff is large: its 30 lines aren’t shown here.

tools/perf/builtin-top.c+2−0

This diff is large: its 16 lines aren’t shown here.

tools/perf/pmu-events/jevents.c+1−1

This diff is large: its 9 lines aren’t shown here.

tools/perf/tests/bpf.c+1−1

This diff is large: its 9 lines aren’t shown here.

tools/perf/tests/parse-events.c+2−2

This diff is large: its 18 lines aren’t shown here.

tools/perf/tests/parse-metric.c+3−0

This diff is large: its 10 lines aren’t shown here.

tools/perf/ui/browsers/hists.c+2−1

This diff is large: its 18 lines aren’t shown here.

tools/perf/util/arm-spe-decoder/arm-spe-decoder.c+3−3

This diff is large: its 19 lines aren’t shown here.

tools/perf/util/cs-etm.c+8−1

This diff is large: its 17 lines aren’t shown here.

tools/perf/util/intel-pt.c+8−1

This diff is large: its 17 lines aren’t shown here.

tools/perf/util/machine.c+0−6

This diff is large: its 13 lines aren’t shown here.

tools/perf/util/map.c+16−0

This diff is large: its 23 lines aren’t shown here.

tools/perf/util/map.h+8−1

This diff is large: its 26 lines aren’t shown here.

tools/perf/util/parse-events.c+19−12

This diff is large: its 53 lines aren’t shown here.

tools/perf/util/parse-events.y+4−4

This diff is large: its 36 lines aren’t shown here.

tools/perf/util/session.c+1−1

This diff is large: its 9 lines aren’t shown here.

tools/perf/util/stat-display.c+1−1

This diff is large: its 9 lines aren’t shown here.

tools/perf/util/stat.h+1−0

This diff is large: its 8 lines aren’t shown here.

tools/perf/util/symbol.c+1−0

This diff is large: its 8 lines aren’t shown here.

tools/perf/util/zstd.c+1−1

This diff is large: its 9 lines aren’t shown here.

tools/testing/selftests/bpf/.gitignore+0−1

This diff is large: its 8 lines aren’t shown here.

tools/testing/selftests/bpf/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c+4−4

This diff is large: its 28 lines aren’t shown here.

tools/testing/selftests/bpf/prog_tests/btf_dump.c+20−7

This diff is large: its 43 lines aren’t shown here.

tools/testing/selftests/bpf/prog_tests/core_extern.c+2−2

This diff is large: its 11 lines aren’t shown here.

tools/testing/selftests/bpf/prog_tests/core_reloc.c+10−10

This diff is large: its 40 lines aren’t shown here.

tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c+3−3

This diff is large: its 27 lines aren’t shown here.

tools/testing/selftests/bpf/prog_tests/flow_dissector.c+1−1

This diff is large: its 9 lines aren’t shown here.

tools/testing/selftests/bpf/prog_tests/global_data.c+3−3

This diff is large: its 27 lines aren’t shown here.

tools/testing/selftests/bpf/prog_tests/mmap.c+13−6

This diff is large: its 54 lines aren’t shown here.

tools/testing/selftests/bpf/prog_tests/prog_run_xattr.c+1−1

This diff is large: its 9 lines aren’t shown here.

tools/testing/selftests/bpf/prog_tests/sk_lookup.c+1−0

This diff is large: its 8 lines aren’t shown here.

tools/testing/selftests/bpf/prog_tests/skb_ctx.c+1−1

This diff is large: its 9 lines aren’t shown here.

tools/testing/selftests/bpf/prog_tests/test_global_funcs.c+1−1

This diff is large: its 9 lines aren’t shown here.

tools/testing/selftests/bpf/prog_tests/varlen.c+4−4

This diff is large: its 30 lines aren’t shown here.

tools/testing/selftests/bpf/progs/core_reloc_types.h+37−32

This diff is large: its 167 lines aren’t shown here.

tools/testing/selftests/bpf/progs/test_tcpbpf_kern.c+41−0

This diff is large: its 55 lines aren’t shown here.

tools/testing/selftests/bpf/progs/test_varlen.c+3−3

This diff is large: its 13 lines aren’t shown here.

tools/testing/selftests/bpf/test_btf.c+4−4

This diff is large: its 36 lines aren’t shown here.

tools/testing/selftests/bpf/test_maps.c+2−0

This diff is large: its 9 lines aren’t shown here.

tools/testing/selftests/bpf/test_progs.c+3−1

This diff is large: its 11 lines aren’t shown here.

tools/testing/selftests/bpf/test_progs.h+5−0

This diff is large: its 12 lines aren’t shown here.

tools/testing/selftests/kvm/x86_64/debug_regs.c+2−2

This diff is large: its 14 lines aren’t shown here.

tools/testing/selftests/net/icmp_redirect.sh+2−0

This diff is large: its 9 lines aren’t shown here.

tools/testing/selftests/netfilter/nft_flowtable.sh+75−55

This diff is large: its 249 lines aren’t shown here.

tools/testing/selftests/powerpc/mm/.gitignore+1−0

This diff is large: its 8 lines aren’t shown here.

tools/testing/selftests/powerpc/mm/Makefile+3−1

This diff is large: its 18 lines aren’t shown here.

tools/testing/selftests/powerpc/mm/prot_sao.c+43−0

This diff is large: its 44 lines aren’t shown here.

tools/testing/selftests/x86/test_vsyscall.c+20−2

This diff is large: its 43 lines aren’t shown here.

tools/usb/Build+2−0

This diff is large: its 3 lines aren’t shown here.

tools/usb/Makefile+45−8

This diff is large: its 60 lines aren’t shown here.

virt/kvm/kvm_main.c+2−1

This diff is large: its 10 lines aren’t shown here.