History

Merge 5.9-rc3 into char-misc-next

We need the fixes in here as well.

Greg Kroah-Hartman committed 6 years ago

Commit dd559722 parents 551b672 f75aef31739 files · +9839 −6534Browse files

Unified · Split

1739 files
  1. .mailmap +61 −57
  2. Documentation/ABI/testing/sysfs-bus-event_source-devices-hv_24x7 +1 −1
  3. Documentation/admin-guide/ext4.rst +13 −10
  4. Documentation/admin-guide/kernel-parameters.txt +1 −4
  5. Documentation/admin-guide/pm/intel_pstate.rst +2 −2
  6. Documentation/bpf/index.rst +7 −0
  7. Documentation/devicetree/bindings/clock/imx23-clock.yaml +1 −1
  8. Documentation/devicetree/bindings/clock/imx28-clock.yaml +1 −1
  9. Documentation/devicetree/bindings/gpio/gpio-mxs.yaml +1 −1
  10. Documentation/devicetree/bindings/i2c/i2c-mxs.yaml +1 −1
  11. Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.txt +0 −66
  12. Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml +98 −0
  13. Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt +0 −82
  14. Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml +102 −0
  15. Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml +1 −1
  16. Documentation/devicetree/bindings/mmc/mxs-mmc.yaml +1 −1
  17. Documentation/devicetree/bindings/net/ethernet-controller.yaml +2 −1
  18. Documentation/devicetree/bindings/net/renesas,ether.yaml +15 −7
  19. Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml +8 −0
  20. Documentation/devicetree/bindings/pwm/mxs-pwm.yaml +1 −1
  21. Documentation/devicetree/bindings/spi/fsl-imx-cspi.yaml +1 −1
  22. Documentation/devicetree/bindings/spi/spi-fsl-lpspi.yaml +1 −0
  23. Documentation/devicetree/bindings/thermal/imx-thermal.yaml +1 −1
  24. Documentation/devicetree/bindings/timer/sifive,clint.yaml +60 −0
  25. Documentation/devicetree/bindings/vendor-prefixes.yaml +1 −1
  26. Documentation/devicetree/writing-schema.rst +2 −2
  27. Documentation/fault-injection/nvme-fault-injection.rst +1 −1
  28. Documentation/filesystems/ext4/about.rst +1 −1
  29. Documentation/networking/bonding.rst +0 −18
  30. Documentation/powerpc/syscall64-abi.rst +3 −1
  31. MAINTAINERS +41 −31
  32. Makefile +3 −4
  33. arch/alpha/kernel/module.c +1 −1
  34. arch/alpha/kernel/signal.c +1 −1
  35. arch/alpha/kernel/traps.c +2 −2
  36. arch/arc/kernel/disasm.c +1 −1
  37. arch/arc/kernel/signal.c +1 −1
  38. arch/arc/kernel/unwind.c +3 −3
  39. arch/arm/kernel/hw_breakpoint.c +5 −5
  40. arch/arm/kernel/signal.c +1 −1
  41. arch/arm/mach-ep93xx/crunch.c +1 −1
  42. arch/arm/mach-mmp/pm-mmp2.c +4 −4
  43. arch/arm/mach-mmp/pm-pxa910.c +5 −5
  44. arch/arm/mach-omap2/id.c +0 −8
  45. arch/arm/mach-omap2/omap_device.c +1 −1
  46. arch/arm/mach-omap2/pm34xx.c +0 −4
  47. arch/arm/mach-orion5x/dns323-setup.c +1 −1
  48. arch/arm/mach-rpc/riscpc.c +1 −1
  49. arch/arm/mach-tegra/reset.c +1 −1
  50. arch/arm/mm/alignment.c +2 −2
  51. arch/arm/mm/proc-v7-bugs.c +1 −1
  52. arch/arm/plat-omap/dma.c +3 −3
  53. arch/arm/probes/decode.c +1 −1
  54. arch/arm/probes/kprobes/core.c +1 −1
  55. arch/arm64/Makefile +10 −3
  56. arch/arm64/boot/dts/ti/k3-am65-main.dtsi +17 −19
  57. arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi +6 −6
  58. arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi +4 −4
  59. arch/arm64/boot/dts/ti/k3-am654-base-board.dts +2 −2
  60. arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts +5 −5
  61. arch/arm64/boot/dts/ti/k3-j721e-main.dtsi +22 −21
  62. arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi +5 −7
  63. arch/arm64/include/asm/compiler.h +6 −0
  64. arch/arm64/include/asm/irqflags.h +5 −0
  65. arch/arm64/include/asm/kvm_arm.h +2 −1
  66. arch/arm64/include/asm/kvm_asm.h +43 −0
  67. arch/arm64/include/asm/kvm_host.h +1 −1
  68. arch/arm64/include/asm/tlbflush.h +4 −2
  69. arch/arm64/kernel/acpi.c +1 −1
  70. arch/arm64/kernel/cpu_errata.c +2 −0
  71. arch/arm64/kernel/cpufeature.c +1 −1
  72. arch/arm64/kernel/cpuinfo.c +0 −1
  73. arch/arm64/kernel/entry.S +0 −21
  74. arch/arm64/kernel/hw_breakpoint.c +3 −3
  75. arch/arm64/kernel/image-vars.h +4 −0
  76. arch/arm64/kernel/module.c +4 −4
  77. arch/arm64/kernel/process.c +34 −2
  78. arch/arm64/kernel/smp.c +1 −1
  79. arch/arm64/kernel/vdso32/Makefile +1 −1
  80. arch/arm64/kernel/vmlinux.lds.S +8 −0
  81. arch/arm64/kvm/arm.c +4 −0
  82. arch/arm64/kvm/handle_exit.c +1 −1
  83. arch/arm64/kvm/hyp/entry.S +9 −6
  84. arch/arm64/kvm/hyp/hyp-entry.S +41 −24
  85. arch/arm64/kvm/hyp/include/hyp/debug-sr.h +30 −30
  86. arch/arm64/kvm/hyp/include/hyp/switch.h +35 −4
  87. arch/arm64/kvm/hyp/nvhe/switch.c +5 −0
  88. arch/arm64/kvm/hyp/vgic-v3-sr.c +8 −8
  89. arch/arm64/kvm/hyp/vhe/switch.c +5 −0
  90. arch/arm64/kvm/mmu.c +14 −5
  91. arch/arm64/mm/context.c +1 −1
  92. arch/c6x/kernel/signal.c +2 −2
  93. arch/csky/kernel/signal.c +1 −1
  94. arch/h8300/kernel/signal.c +1 −1
  95. arch/hexagon/kernel/module.c +1 −1
  96. arch/hexagon/kernel/signal.c +1 −1
  97. arch/ia64/include/asm/pgtable.h +9 −0
  98. arch/ia64/kernel/crash.c +1 −1
  99. arch/ia64/kernel/module.c +1 −1
  100. arch/ia64/kernel/perfmon.c +1 −1
  101. arch/ia64/kernel/signal.c +1 −1
  102. arch/ia64/kernel/unaligned.c +3 −3
  103. arch/ia64/kernel/unwind.c +1 −1
  104. arch/m68k/atari/atakeyb.c +1 −1
  105. arch/m68k/kernel/signal.c +1 −1
  106. arch/m68k/mac/config.c +1 −1
  107. arch/m68k/mac/via.c +1 −1
  108. arch/m68k/mm/fault.c +1 −1
  109. arch/microblaze/kernel/signal.c +1 −1
  110. arch/mips/include/asm/irqflags.h +5 −0
  111. arch/mips/include/asm/kvm_host.h +1 −1
  112. arch/mips/include/asm/unroll.h +32 −32
  113. arch/mips/kvm/mmu.c +2 −1
  114. arch/nds32/include/asm/irqflags.h +5 −0
  115. arch/nds32/kernel/fpu.c +6 −6
  116. arch/nds32/kernel/signal.c +2 −2
  117. arch/openrisc/kernel/signal.c +1 −1
  118. arch/parisc/kernel/signal.c +1 −1
  119. arch/parisc/kernel/traps.c +5 −6
  120. arch/parisc/mm/fault.c +2 −2
  121. arch/powerpc/Kconfig +12 −0
  122. arch/powerpc/include/asm/book3s/64/pgtable.h +3 −5
  123. arch/powerpc/include/asm/cputable.h +10 −5
  124. arch/powerpc/include/asm/fixmap.h +1 −1
  125. arch/powerpc/include/asm/hw_irq.h +4 −7
  126. arch/powerpc/include/asm/kasan.h +8 −1
  127. arch/powerpc/include/asm/kvm_host.h +2 −1
  128. arch/powerpc/include/asm/mce.h +7 −0
  129. arch/powerpc/include/asm/mman.h +27 −4
  130. arch/powerpc/include/asm/nohash/64/pgtable.h +2 −0
  131. arch/powerpc/include/asm/perf_event.h +3 −0
  132. arch/powerpc/include/asm/perf_event_server.h +5 −0
  133. arch/powerpc/include/uapi/asm/mman.h +1 −1
  134. arch/powerpc/include/uapi/asm/perf_regs.h +19 −1
  135. arch/powerpc/kernel/cputable.c +19 −3
  136. arch/powerpc/kernel/dt_cpu_ftrs.c +1 −5
  137. arch/powerpc/kernel/entry_64.S +4 −0
  138. arch/powerpc/kernel/process.c +9 −3
  139. arch/powerpc/kernel/setup-common.c +1 −0
  140. arch/powerpc/kvm/book3s.c +2 −1
  141. arch/powerpc/kvm/e500_mmu_host.c +2 −1
  142. arch/powerpc/mm/book3s32/mmu.c +8 −1
  143. arch/powerpc/mm/book3s64/hash_utils.c +5 −1
  144. arch/powerpc/net/bpf_jit_comp.c +1 −1
  145. arch/powerpc/perf/core-book3s.c +19 −5
  146. arch/powerpc/perf/hv-24x7.c +10 −1
  147. arch/powerpc/perf/imc-pmu.c +2 −2
  148. arch/powerpc/perf/perf_regs.c +41 −3
  149. arch/powerpc/perf/power10-pmu.c +6 −0
  150. arch/powerpc/perf/power9-pmu.c +6 −0
  151. arch/powerpc/platforms/Kconfig.cputype +1 −1
  152. arch/powerpc/platforms/powernv/idle.c +1 −1
  153. arch/powerpc/platforms/powernv/pci-ioda.c +1 −1
  154. arch/powerpc/platforms/pseries/hotplug-cpu.c +12 −6
  155. arch/powerpc/platforms/pseries/ras.c +0 −1
  156. arch/riscv/Kconfig +1 −1
  157. arch/riscv/Kconfig.socs +2 −0
  158. arch/riscv/configs/nommu_virt_defconfig +2 −5
  159. arch/riscv/configs/rv32_defconfig +5 −0
  160. arch/riscv/include/asm/clint.h +0 −39
  161. arch/riscv/include/asm/smp.h +19 −0
  162. arch/riscv/include/asm/timex.h +7 −21
  163. arch/riscv/kernel/Makefile +1 −1
  164. arch/riscv/kernel/clint.c +0 −44
  165. arch/riscv/kernel/sbi.c +14 −0
  166. arch/riscv/kernel/setup.c +0 −2
  167. arch/riscv/kernel/signal.c +1 −1
  168. arch/riscv/kernel/smp.c +24 −20
  169. arch/riscv/kernel/smpboot.c +1 −3
  170. arch/riscv/net/bpf_jit_comp32.c +2 −2
  171. arch/s390/include/asm/percpu.h +14 −14
  172. arch/s390/kernel/idle.c +1 −2
  173. arch/s390/kernel/ptrace.c +5 −2
  174. arch/s390/kernel/runtime_instr.c +1 −1
  175. arch/s390/mm/vmem.c +1 −0
  176. arch/s390/pci/pci.c +15 −7
  177. arch/s390/pci/pci_bus.c +30 −22
  178. arch/s390/pci/pci_bus.h +13 −0
  179. arch/s390/pci/pci_event.c +5 −2
  180. arch/sh/drivers/platform_early.c +1 −1
  181. arch/sh/kernel/disassemble.c +2 −2
  182. arch/sh/kernel/kgdb.c +1 −1
  183. arch/sh/kernel/signal_32.c +1 −1
  184. arch/sparc/kernel/auxio_64.c +0 −1
  185. arch/sparc/kernel/central.c +1 −1
  186. arch/sparc/kernel/kgdb_32.c +1 −1
  187. arch/sparc/kernel/kgdb_64.c +1 −1
  188. arch/sparc/kernel/pcr.c +1 −1
  189. arch/sparc/kernel/prom_32.c +1 −1
  190. arch/sparc/kernel/signal32.c +2 −2
  191. arch/sparc/kernel/signal_32.c +2 −2
  192. arch/sparc/kernel/signal_64.c +2 −2
  193. arch/sparc/math-emu/math_32.c +4 −4
  194. arch/sparc/net/bpf_jit_comp_32.c +1 −1
  195. arch/um/kernel/signal.c +1 −1
  196. arch/x86/boot/cmdline.c +2 −2
  197. arch/x86/boot/compressed/kaslr.c +1 −1
  198. arch/x86/boot/compressed/misc.c +2 −5
  199. arch/x86/boot/string.h +1 −4
  200. arch/x86/entry/calling.h +6 −4
  201. arch/x86/entry/thunk_32.S +0 −5
  202. arch/x86/events/intel/core.c +3 −3
  203. arch/x86/events/intel/lbr.c +1 −1
  204. arch/x86/events/intel/uncore_snb.c +49 −3
  205. arch/x86/include/asm/efi.h +0 −10
  206. arch/x86/include/asm/kvm_host.h +2 −1
  207. arch/x86/include/asm/mmu.h +1 −0
  208. arch/x86/kernel/alternative.c +1 −1
  209. arch/x86/kernel/apic/io_apic.c +2 −2
  210. arch/x86/kernel/apic/probe_32.c +1 −1
  211. arch/x86/kernel/apic/vector.c +9 −7
  212. arch/x86/kernel/cpu/cacheinfo.c +1 −1
  213. arch/x86/kernel/cpu/mce/inject.c +1 −1
  214. arch/x86/kernel/cpu/mce/intel.c +1 −1
  215. arch/x86/kernel/cpu/mtrr/cyrix.c +1 −1
  216. arch/x86/kernel/hw_breakpoint.c +1 −1
  217. arch/x86/kernel/kgdb.c +2 −2
  218. arch/x86/kernel/mpparse.c +2 −2
  219. arch/x86/kernel/process.c +0 −4
  220. arch/x86/kernel/ptrace.c +1 −1
  221. arch/x86/kernel/reboot.c +1 −1
  222. arch/x86/kernel/signal.c +1 −1
  223. arch/x86/kernel/smpboot.c +20 −6
  224. arch/x86/kernel/uprobes.c +2 −2
  225. arch/x86/kvm/emulate.c +1 −1
  226. arch/x86/kvm/hyperv.c +1 −1
  227. arch/x86/kvm/irq_comm.c +1 −1
  228. arch/x86/kvm/lapic.c +3 −3
  229. arch/x86/kvm/mmu/mmu.c +3 −2
  230. arch/x86/kvm/svm/svm.c +1 −1
  231. arch/x86/kvm/vmx/vmx.c +6 −6
  232. arch/x86/kvm/x86.c +8 −9
  233. arch/x86/lib/cmdline.c +4 −4
  234. arch/x86/lib/insn-eval.c +2 −4
  235. arch/x86/math-emu/errors.c +1 −1
  236. arch/x86/math-emu/fpu_trig.c +1 −1
  237. arch/x86/mm/ioremap.c +1 −1
  238. arch/x86/mm/tlb.c +2 −11
  239. arch/x86/pci/xen.c +1 −0
  240. arch/x86/platform/efi/efi.c +0 −69
  241. arch/x86/platform/efi/efi_32.c +37 −7
  242. arch/x86/platform/efi/efi_64.c +2 −0
  243. arch/xtensa/kernel/signal.c +1 −1
  244. block/badblocks.c +1 −1
  245. block/bfq-cgroup.c +1 −1
  246. block/bfq-iosched.c +2 −2
  247. block/bfq-iosched.h +0 −1
  248. block/bfq-wf2q.c +2 −10
  249. block/bio.c +5 −5
  250. block/blk-cgroup.c +5 −3
  251. block/blk-merge.c +10 −3
  252. block/blk-mq-sched.c +9 −0
  253. block/blk-mq.c +12 −1
  254. block/blk-wbt.c +1 −1
  255. block/bsg-lib.c +1 −1
  256. block/ioprio.c +1 −1
  257. crypto/af_alg.c +10 −3
  258. crypto/drbg.c +1 −1
  259. crypto/tcrypt.c +57 −57
  260. drivers/accessibility/braille/braille_console.c +1 −1
  261. drivers/accessibility/speakup/Kconfig +9 −4
  262. drivers/accessibility/speakup/Makefile +1 −1
  263. drivers/accessibility/speakup/serialio.c +5 −3
  264. drivers/accessibility/speakup/spk_priv.h +0 −1
  265. drivers/accessibility/speakup/spk_ttyio.c +7 −0
  266. drivers/accessibility/speakup/spk_types.h +1 −0
  267. drivers/accessibility/speakup/synth.c +1 −1
  268. drivers/acpi/acpi_apd.c +2 −2
  269. drivers/acpi/osl.c +19 −4
  270. drivers/ata/ahci_brcm.c +1 −1
  271. drivers/ata/libahci_platform.c +1 −1
  272. drivers/ata/libata-core.c +8 −8
  273. drivers/ata/libata-eh.c +3 −3
  274. drivers/ata/libata-scsi.c +2 −2
  275. drivers/ata/pata_atp867x.c +2 −2
  276. drivers/ata/pata_serverworks.c +1 −1
  277. drivers/ata/sata_mv.c +6 −6
  278. drivers/ata/sata_promise.c +4 −4
  279. drivers/ata/sata_sx4.c +1 −1
  280. drivers/atm/firestream.c +1 −1
  281. drivers/atm/fore200e.c +8 −8
  282. drivers/atm/he.c +2 −2
  283. drivers/atm/idt77105.c +1 −1
  284. drivers/atm/lanai.c +1 −1
  285. drivers/atm/zatm.c +1 −1
  286. drivers/auxdisplay/panel.c +3 −3
  287. drivers/base/core.c +8 −4
  288. drivers/base/firmware_loader/fallback.c +2 −2
  289. drivers/base/power/main.c +10 −6
  290. drivers/block/aoe/aoecmd.c +1 −1
  291. drivers/block/ataflop.c +1 −1
  292. drivers/block/drbd/drbd_int.h +1 −1
  293. drivers/block/drbd/drbd_main.c +1 −1
  294. drivers/block/drbd/drbd_nl.c +1 −1
  295. drivers/block/drbd/drbd_receiver.c +6 −6
  296. drivers/block/drbd/drbd_req.c +2 −2
  297. drivers/block/floppy.c +2 −2
  298. drivers/block/loop.c +22 −19
  299. drivers/block/nbd.c +2 −0
  300. drivers/block/null_blk_main.c +1 −1
  301. drivers/block/paride/pd.c +2 −2
  302. drivers/block/pktcdvd.c +1 −1
  303. drivers/block/rbd.c +4 −4
  304. drivers/block/rnbd/rnbd-srv.c +2 −1
  305. drivers/block/rsxx/core.c +1 −1
  306. drivers/block/skd_main.c +1 −1
  307. drivers/block/virtio_blk.c +23 −8
  308. drivers/block/xen-blkback/blkback.c +1 −1
  309. drivers/block/xen-blkback/xenbus.c +1 −1
  310. drivers/block/xen-blkfront.c +2 −3
  311. drivers/bus/ti-sysc.c +1 −1
  312. drivers/char/agp/ali-agp.c +1 −1
  313. drivers/char/hw_random/ingenic-rng.c +2 −7
  314. drivers/char/ipmi/kcs_bmc.c +1 −1
  315. drivers/char/lp.c +2 −2
  316. drivers/char/mem.c +1 −1
  317. drivers/char/nvram.c +1 −1
  318. drivers/clocksource/Kconfig +10 −2
  319. drivers/clocksource/Makefile +1 −0
  320. drivers/clocksource/timer-cadence-ttc.c +2 −2
  321. drivers/clocksource/timer-clint.c +226 −0
  322. drivers/clocksource/timer-riscv.c +2 −15
  323. drivers/cpufreq/cpufreq.c +1 −2
  324. drivers/cpufreq/p4-clockmod.c +1 −1
  325. drivers/cpufreq/speedstep-lib.c +1 −1
  326. drivers/cpufreq/tegra194-cpufreq.c +7 −3
  327. drivers/cpufreq/ti-cpufreq.c +2 −2
  328. drivers/cpuidle/cpuidle.c +14 −5
  329. drivers/crypto/Kconfig +3 −0
  330. drivers/crypto/axis/artpec6_crypto.c +1 −1
  331. drivers/crypto/cavium/cpt/cptvf_reqmanager.c +2 −2
  332. drivers/crypto/chelsio/chcr_ktls.c +2 −2
  333. drivers/crypto/marvell/octeontx/otx_cptvf_reqmgr.c +2 −2
  334. drivers/crypto/qat/qat_common/adf_admin.c +4 −3
  335. drivers/crypto/qat/qat_common/adf_pf2vf_msg.c +1 −1
  336. drivers/crypto/qat/qat_common/qat_uclo.c +3 −3
  337. drivers/crypto/ux500/cryp/cryp.c +6 −6
  338. drivers/dax/super.c +6 −0
  339. drivers/dma/amba-pl08x.c +5 −5
  340. drivers/dma/fsldma.c +1 −1
  341. drivers/dma/fsldma.h +6 −6
  342. drivers/dma/imx-dma.c +1 −1
  343. drivers/dma/iop-adma.h +6 −6
  344. drivers/dma/nbpfaxi.c +1 −1
  345. drivers/dma/pl330.c +3 −7
  346. drivers/dma/sh/shdma-base.c +1 −1
  347. drivers/edac/amd64_edac.c +1 −1
  348. drivers/edac/ghes_edac.c +6 −4
  349. drivers/edac/i7core_edac.c +2 −2
  350. drivers/edac/pnd2_edac.c +2 −2
  351. drivers/edac/sb_edac.c +2 −2
  352. drivers/edac/skx_common.c +2 −2
  353. drivers/firewire/core-device.c +1 −1
  354. drivers/firewire/core-iso.c +1 −1
  355. drivers/firewire/core-topology.c +1 −1
  356. drivers/firewire/core-transaction.c +2 −2
  357. drivers/firewire/ohci.c +2 −2
  358. drivers/firmware/efi/efi.c +2 −0
  359. drivers/firmware/efi/libstub/efi-stub-helper.c +10 −2
  360. drivers/firmware/ti_sci.c +68 −87
  361. drivers/gpio/gpio-aspeed-sgpio.c +3 −3
  362. drivers/gpio/gpio-aspeed.c +3 −3
  363. drivers/gpio/gpio-ath79.c +1 −1
  364. drivers/gpio/gpio-eic-sprd.c +1 −3
  365. drivers/gpio/gpio-stmpe.c +2 −2
  366. drivers/gpio/gpiolib-acpi.c +1 −1
  367. drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10_3.c +1 −1
  368. drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c +22 −9
  369. drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c +5 −0
  370. drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +1 −2
  371. drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +0 −2
  372. drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +1 −1
  373. drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c +2 −4
  374. drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +1 −1
  375. drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +1 −0
  376. drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c +19 −0
  377. drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c +1 −1
  378. drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c +19 −0
  379. drivers/gpu/drm/amd/amdgpu/nv.c +1 −0
  380. drivers/gpu/drm/amd/amdgpu/psp_v11_0.c +1 −2
  381. drivers/gpu/drm/amd/amdgpu/si_dpm.c +1 −1
  382. drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +51 −43
  383. drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c +1 −1
  384. drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c +15 −1
  385. drivers/gpu/drm/amd/display/dc/bios/command_table2.c +28 −0
  386. drivers/gpu/drm/amd/display/dc/bios/command_table2.h +2 −1
  387. drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c +10 −0
  388. drivers/gpu/drm/amd/display/dc/core/dc_link.c +1 −1
  389. drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c +4 −4
  390. drivers/gpu/drm/amd/display/dc/dc_bios_types.h +4 −0
  391. drivers/gpu/drm/amd/display/dc/dc_stream.h +1 −1
  392. drivers/gpu/drm/amd/display/dc/dce/dce_panel_cntl.h +1 −1
  393. drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c +24 −0
  394. drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +31 −22
  395. drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c +8 −0
  396. drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.c +8 −8
  397. drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.h +14 −0
  398. drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c +2 −2
  399. drivers/gpu/drm/amd/display/dc/dcn20/dcn20_link_encoder.h +3 −1
  400. drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +1 −1
  401. drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dio_link_encoder.h +4 −1
  402. drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c +1 −0
  403. drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c +4 −0
  404. drivers/gpu/drm/amd/display/dc/inc/hw/clk_mgr.h +2 −0
  405. drivers/gpu/drm/amd/display/include/bios_parser_types.h +7 −0
  406. drivers/gpu/drm/amd/display/include/fixed31_32.h +3 −0
  407. drivers/gpu/drm/amd/display/modules/freesync/freesync.c +29 −7
  408. drivers/gpu/drm/amd/powerplay/arcturus_ppt.c +6 −3
  409. drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c +3 −6
  410. drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c +12 −10
  411. drivers/gpu/drm/amd/powerplay/hwmgr/vega12_thermal.c +11 −10
  412. drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c +19 −25
  413. drivers/gpu/drm/amd/powerplay/hwmgr/vega20_thermal.c +11 −10
  414. drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c +9 −2
  415. drivers/gpu/drm/arm/malidp_hw.c +3 −3
  416. drivers/gpu/drm/ast/ast_main.c +1 −1
  417. drivers/gpu/drm/bridge/nwl-dsi.c +0 −2
  418. drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c +2 −2
  419. drivers/gpu/drm/bridge/ti-sn65dsi86.c +3 −3
  420. drivers/gpu/drm/drm_atomic_helper.c +4 −3
  421. drivers/gpu/drm/drm_bufs.c +1 −1
  422. drivers/gpu/drm/drm_color_mgmt.c +1 −1
  423. drivers/gpu/drm/drm_crtc.c +1 −3
  424. drivers/gpu/drm/drm_dp_helper.c +1 −1
  425. drivers/gpu/drm/drm_dp_mst_topology.c +2 −2
  426. drivers/gpu/drm/drm_mode_object.c +2 −2
  427. drivers/gpu/drm/drm_modes.c +1 −1
  428. drivers/gpu/drm/drm_plane.c +1 −1
  429. drivers/gpu/drm/etnaviv/etnaviv_gpu.c +9 −2
  430. drivers/gpu/drm/etnaviv/etnaviv_sched.c +6 −5
  431. drivers/gpu/drm/exynos/exynos_drm_dsi.c +5 −5
  432. drivers/gpu/drm/exynos/exynos_drm_fbdev.c +1 −1
  433. drivers/gpu/drm/exynos/exynos_drm_gem.h +1 −1
  434. drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c +3 −3
  435. drivers/gpu/drm/i915/display/icl_dsi.c +3 −3
  436. drivers/gpu/drm/i915/display/intel_bios.c +3 −3
  437. drivers/gpu/drm/i915/display/intel_cdclk.c +5 −5
  438. drivers/gpu/drm/i915/display/intel_combo_phy.c +3 −3
  439. drivers/gpu/drm/i915/display/intel_ddi.c +2 −2
  440. drivers/gpu/drm/i915/display/intel_display.c +11 −11
  441. drivers/gpu/drm/i915/display/intel_display_debugfs.c +5 −2
  442. drivers/gpu/drm/i915/display/intel_display_power.c +7 −7
  443. drivers/gpu/drm/i915/display/intel_dpll_mgr.c +4 −4
  444. drivers/gpu/drm/i915/display/intel_panel.c +1 −1
  445. drivers/gpu/drm/i915/display/intel_sdvo.c +6 −6
  446. drivers/gpu/drm/i915/display/intel_sprite.c +11 −11
  447. drivers/gpu/drm/i915/display/intel_tc.c +1 −1
  448. drivers/gpu/drm/i915/gem/i915_gem_mman.c +1 −1
  449. drivers/gpu/drm/i915/gem/i915_gem_pages.c +1 −1
  450. drivers/gpu/drm/i915/gem/i915_gem_stolen.c +3 −3
  451. drivers/gpu/drm/i915/gt/intel_engine_cs.c +1 −1
  452. drivers/gpu/drm/i915/gt/intel_ggtt.c +1 −1
  453. drivers/gpu/drm/i915/gt/intel_ring_submission.c +1 −1
  454. drivers/gpu/drm/i915/gvt/cfg_space.c +24 −0
  455. drivers/gpu/drm/i915/gvt/gtt.c +1 −1
  456. drivers/gpu/drm/i915/gvt/gtt.h +2 −0
  457. drivers/gpu/drm/i915/gvt/gvt.h +3 −0
  458. drivers/gpu/drm/i915/gvt/handlers.c +1 −1
  459. drivers/gpu/drm/i915/gvt/vgpu.c +17 −3
  460. drivers/gpu/drm/i915/i915_cmd_parser.c +10 −4
  461. drivers/gpu/drm/i915/i915_gpu_error.c +1 −1
  462. drivers/gpu/drm/i915/i915_pmu.c +3 −6
  463. drivers/gpu/drm/i915/selftests/i915_buddy.c +10 −8
  464. drivers/gpu/drm/i915/selftests/mock_gem_device.c +3 −0
  465. drivers/gpu/drm/imx/ipuv3-plane.c +1 −1
  466. drivers/gpu/drm/meson/meson_osd_afbcd.c +1 −1
  467. drivers/gpu/drm/meson/meson_overlay.c +2 −2
  468. drivers/gpu/drm/msm/adreno/a5xx_gpu.c +2 −2
  469. drivers/gpu/drm/msm/adreno/a6xx_gmu.c +30 −10
  470. drivers/gpu/drm/msm/adreno/a6xx_gpu.c +1 −1
  471. drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c +2 −1
  472. drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h +1 −1
  473. drivers/gpu/drm/msm/adreno/adreno_device.c +4 −0
  474. drivers/gpu/drm/msm/adreno/adreno_gpu.c +2 −2
  475. drivers/gpu/drm/msm/adreno/adreno_gpu.h +2 −0
  476. drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c +1 −1
  477. drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c +11 −9
  478. drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c +2 −2
  479. drivers/gpu/drm/msm/msm_atomic.c +36 −0
  480. drivers/gpu/drm/msm/msm_drv.c +8 −0
  481. drivers/gpu/drm/msm/msm_ringbuffer.c +2 −1
  482. drivers/gpu/drm/omapdrm/dss/venc.c +1 −1
  483. drivers/gpu/drm/omapdrm/omap_crtc.c +2 −1
  484. drivers/gpu/drm/radeon/ci_dpm.c +1 −1
  485. drivers/gpu/drm/radeon/r300.c +2 −2
  486. drivers/gpu/drm/radeon/r420.c +1 −1
  487. drivers/gpu/drm/radeon/r600_cs.c +2 −2
  488. drivers/gpu/drm/radeon/radeon_uvd.c +1 −1
  489. drivers/gpu/drm/radeon/si_dpm.c +1 −1
  490. drivers/gpu/drm/radeon/uvd_v1_0.c +1 −1
  491. drivers/gpu/drm/savage/savage_state.c +5 −5
  492. drivers/gpu/drm/sti/sti_hdmi.c +3 −3
  493. drivers/gpu/drm/sun4i/sun4i_tcon.c +2 −2
  494. drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +1 −1
  495. drivers/gpu/drm/tegra/dc.c +1 −1
  496. drivers/gpu/drm/tilcdc/tilcdc_crtc.c +1 −1
  497. drivers/gpu/drm/ttm/ttm_bo_vm.c +1 −1
  498. drivers/gpu/drm/via/via_dmablit.c +4 −4
  499. drivers/gpu/drm/virtio/virtgpu_ioctl.c +1 −0
  500. drivers/gpu/drm/virtio/virtgpu_object.c +1 −0
  501. drivers/gpu/drm/xen/xen_drm_front.c +0 −3
  502. drivers/gpu/ipu-v3/ipu-dc.c +1 −1
  503. drivers/hid/hid-cougar.c +1 −1
  504. drivers/hid/hid-ids.h +3 −0
  505. drivers/hid/hid-lg-g15.c +1 −1
  506. drivers/hid/hid-logitech-dj.c +1 −1
  507. drivers/hid/hid-macally.c +1 −1
  508. drivers/hid/hid-microsoft.c +0 −3
  509. drivers/hid/hid-quirks.c +3 −0
  510. drivers/hid/hid-rmi.c +0 −1
  511. drivers/hid/hid-roccat-kone.c +1 −1
  512. drivers/hid/hid-uclogic-params.c +1 −1
  513. drivers/hid/hid-wiimote-core.c +0 −2
  514. drivers/hid/i2c-hid/i2c-hid-core.c +13 −9
  515. drivers/hid/usbhid/hid-core.c +24 −29
  516. drivers/hid/usbhid/hiddev.c +4 −1
  517. drivers/hid/usbhid/usbhid.h +0 −2
  518. drivers/hid/wacom_wac.c +16 −16
  519. drivers/hsi/clients/ssi_protocol.c +3 −3
  520. drivers/hsi/controllers/omap_ssi_core.c +1 −1
  521. drivers/hv/hv_kvp.c +1 −1
  522. drivers/hv/hv_util.c +51 −14
  523. drivers/hwmon/adt7462.c +4 −4
  524. drivers/hwmon/applesmc.c +16 −15
  525. drivers/hwmon/emc1403.c +2 −2
  526. drivers/hwmon/f71882fg.c +2 −2
  527. drivers/hwmon/gsc-hwmon.c +1 −0
  528. drivers/hwmon/hwmon-vid.c +2 −2
  529. drivers/hwmon/ina3221.c +1 −1
  530. drivers/hwmon/nct6775.c +1 −1
  531. drivers/hwmon/nct7904.c +2 −2
  532. drivers/hwmon/occ/common.c +3 −3
  533. drivers/hwmon/pmbus/isl68137.c +6 −1
  534. drivers/hwmon/w83627hf.c +1 −1
  535. drivers/hwmon/w83781d.c +1 −1
  536. drivers/hwmon/w83795.c +1 −1
  537. drivers/hwtracing/coresight/coresight-cpu-debug.c +2 −2
  538. drivers/hwtracing/coresight/coresight-etm4x.c +0 −1
  539. drivers/hwtracing/coresight/coresight-tmc.c +0 −2
  540. drivers/hwtracing/intel_th/sth.c +2 −2
  541. drivers/i2c/busses/i2c-bcm-iproc.c +2 −2
  542. drivers/i2c/busses/i2c-omap.c +0 −1
  543. drivers/i2c/busses/i2c-opal.c +1 −1
  544. drivers/i2c/busses/i2c-rcar.c +1 −0
  545. drivers/i2c/i2c-core-acpi.c +0 −10
  546. drivers/i2c/i2c-core-base.c +1 −1
  547. drivers/i2c/i2c-core.h +0 −9
  548. drivers/i3c/master/dw-i3c-master.c +1 −1
  549. drivers/ide/hpt366.c +3 −3
  550. drivers/ide/ide-cd.c +2 −2
  551. drivers/ide/ide-floppy.c +1 −1
  552. drivers/ide/ide-probe.c +1 −1
  553. drivers/ide/ide-taskfile.c +6 −6
  554. drivers/ide/sis5513.c +1 −1
  555. drivers/idle/intel_idle.c +0 −16
  556. drivers/iio/accel/mma8452.c +1 −1
  557. drivers/iio/adc/ab8500-gpadc.c +1 −1
  558. drivers/iio/adc/cpcap-adc.c +1 −1
  559. drivers/iio/chemical/sps30.c +1 −1
  560. drivers/iio/dac/ad5592r-base.c +0 −2
  561. drivers/iio/dac/dpot-dac.c +3 −2
  562. drivers/iio/health/max30102.c +2 −2
  563. drivers/iio/imu/adis.c +3 −3
  564. drivers/iio/industrialio-core.c +2 −2
  565. drivers/iio/light/si1145.c +1 −1
  566. drivers/iio/magnetometer/ak8974.c +1 −1
  567. drivers/infiniband/core/cm.c +6 −6
  568. drivers/infiniband/core/cma.c +2 −1
  569. drivers/infiniband/core/device.c +1 −1
  570. drivers/infiniband/core/rw.c +0 −1
  571. drivers/infiniband/core/ucma.c +2 −2
  572. drivers/infiniband/core/uverbs_ioctl.c +2 −2
  573. drivers/infiniband/hw/bnxt_re/ib_verbs.c +1 −1
  574. drivers/infiniband/hw/bnxt_re/main.c +2 −1
  575. drivers/infiniband/hw/bnxt_re/qplib_fp.c +1 −1
  576. drivers/infiniband/hw/cxgb4/cm.c +2 −2
  577. drivers/infiniband/hw/cxgb4/qp.c +1 −1
  578. drivers/infiniband/hw/hfi1/pio_copy.c +0 −1
  579. drivers/infiniband/hw/hfi1/tid_rdma.c +1 −0
  580. drivers/infiniband/hw/hns/hns_roce_device.h +0 −2
  581. drivers/infiniband/hw/hns/hns_roce_hw_v1.c +1 −1
  582. drivers/infiniband/hw/hns/hns_roce_hw_v2.c +4 −5
  583. drivers/infiniband/hw/hns/hns_roce_hw_v2.h +1 −3
  584. drivers/infiniband/hw/hns/hns_roce_qp.c +2 −3
  585. drivers/infiniband/hw/hns/hns_roce_srq.c +1 −1
  586. drivers/infiniband/hw/i40iw/i40iw_cm.c +1 −1
  587. drivers/infiniband/hw/i40iw/i40iw_ctrl.c +2 −3
  588. drivers/infiniband/hw/i40iw/i40iw_hw.c +1 −2
  589. drivers/infiniband/hw/i40iw/i40iw_main.c +10 −12
  590. drivers/infiniband/hw/i40iw/i40iw_puda.c +2 −2
  591. drivers/infiniband/hw/i40iw/i40iw_utils.c +3 −5
  592. drivers/infiniband/hw/i40iw/i40iw_verbs.c +2 −3
  593. drivers/infiniband/hw/mlx4/cq.c +2 −2
  594. drivers/infiniband/hw/mlx4/mcg.c +1 −1
  595. drivers/infiniband/hw/mlx4/qp.c +3 −3
  596. drivers/infiniband/hw/mlx5/cq.c +2 −2
  597. drivers/infiniband/hw/mlx5/mad.c +1 −2
  598. drivers/infiniband/hw/mlx5/main.c +1 −1
  599. drivers/infiniband/hw/mlx5/qp.c +2 −2
  600. drivers/infiniband/hw/mthca/mthca_av.c +1 −1
  601. drivers/infiniband/hw/ocrdma/ocrdma_verbs.c +2 −2
  602. drivers/infiniband/hw/qedr/verbs.c +1 −1
  603. drivers/infiniband/hw/qib/qib_iba6120.c +2 −2
  604. drivers/infiniband/hw/qib/qib_iba7220.c +2 −2
  605. drivers/infiniband/hw/qib/qib_iba7322.c +3 −3
  606. drivers/infiniband/hw/qib/qib_mad.c +6 −6
  607. drivers/infiniband/hw/qib/qib_rc.c +9 −9
  608. drivers/infiniband/hw/qib/qib_sdma.c +1 −1
  609. drivers/infiniband/hw/qib/qib_uc.c +4 −4
  610. drivers/infiniband/hw/qib/qib_verbs.c +1 −1
  611. drivers/infiniband/hw/usnic/usnic_ib_main.c +1 −1
  612. drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c +1 −1
  613. drivers/infiniband/sw/rdmavt/qp.c +1 −1
  614. drivers/infiniband/sw/rxe/rxe_comp.c +1 −1
  615. drivers/infiniband/sw/rxe/rxe_task.c +1 −1
  616. drivers/infiniband/sw/rxe/rxe_verbs.c +1 −1
  617. drivers/infiniband/sw/siw/siw_cm.c +0 −2
  618. drivers/infiniband/sw/siw/siw_qp_rx.c +2 −2
  619. drivers/infiniband/sw/siw/siw_qp_tx.c +2 −2
  620. drivers/infiniband/ulp/ipoib/ipoib_cm.c +2 −2
  621. drivers/infiniband/ulp/ipoib/ipoib_main.c +1 −1
  622. drivers/infiniband/ulp/iser/iser_verbs.c +1 −1
  623. drivers/infiniband/ulp/isert/ib_isert.c +5 −5
  624. drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c +0 −1
  625. drivers/input/joystick/fsia6b.c +2 −2
  626. drivers/input/joystick/gamecon.c +0 −1
  627. drivers/input/tablet/wacom_serial4.c +1 −1
  628. drivers/input/touchscreen/atmel_mxt_ts.c +1 −1
  629. drivers/input/touchscreen/wm831x-ts.c +1 −1
  630. drivers/iommu/amd/init.c +1 −1
  631. drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +5 −6
  632. drivers/iommu/dma-iommu.c +2 −2
  633. drivers/iommu/intel/iommu.c +0 −1
  634. drivers/iommu/virtio-iommu.c +1 −1
  635. drivers/irqchip/Kconfig +1 −1
  636. drivers/irqchip/irq-gic-v3-its.c +2 −2
  637. drivers/irqchip/irq-gic-v3.c +4 −4
  638. drivers/irqchip/irq-imx-gpcv2.c +1 −1
  639. drivers/irqchip/irq-ingenic.c +1 −1
  640. drivers/irqchip/irq-mips-gic.c +1 −1
  641. drivers/irqchip/irq-mtk-cirq.c +1 −3
  642. drivers/irqchip/irq-mtk-sysirq.c +1 −3
  643. drivers/irqchip/irq-stm32-exti.c +12 −2
  644. drivers/irqchip/irq-ti-sci-inta.c +79 −16
  645. drivers/irqchip/irq-ti-sci-intr.c +93 −59
  646. drivers/irqchip/irq-vic.c +1 −1
  647. drivers/irqchip/irqchip.c +1 −1
  648. drivers/irqchip/qcom-pdc.c +1 −7
  649. drivers/isdn/hardware/mISDN/avmfritz.c +1 −1
  650. drivers/isdn/hardware/mISDN/hfc_multi_8xx.h +0 −1
  651. drivers/isdn/hardware/mISDN/hfcpci.c +1 −1
  652. drivers/isdn/hardware/mISDN/hfcsusb.c +1 −1
  653. drivers/isdn/hardware/mISDN/isdnhdlc.c +1 −1
  654. drivers/isdn/hardware/mISDN/mISDNinfineon.c +1 −1
  655. drivers/isdn/hardware/mISDN/mISDNisar.c +4 −4
  656. drivers/isdn/mISDN/stack.c +1 −1
  657. drivers/lightnvm/pblk-core.c +1 −1
  658. drivers/macintosh/adbhid.c +1 −1
  659. drivers/macintosh/smu.c +1 −1
  660. drivers/md/bcache/journal.c +1 −1
  661. drivers/md/bcache/util.c +7 −7
  662. drivers/md/dm-crypt.c +1 −1
  663. drivers/md/dm-mpath.c +1 −1
  664. drivers/md/dm.c +1 −1
  665. drivers/md/md-autodetect.c +2 −2
  666. drivers/md/md-bitmap.c +1 −1
  667. drivers/md/raid5.c +7 −4
  668. drivers/media/common/v4l2-tpg/v4l2-tpg-core.c +18 −18
  669. drivers/media/dvb-core/dvb_net.c +1 −1
  670. drivers/media/dvb-frontends/bcm3510.c +1 −1
  671. drivers/media/dvb-frontends/dib0090.c +1 −1
  672. drivers/media/dvb-frontends/dib3000mb.c +1 −1
  673. drivers/media/dvb-frontends/dib7000p.c +1 −1
  674. drivers/media/dvb-frontends/drx39xyj/drxj.c +56 −47
  675. drivers/media/dvb-frontends/drxd_hard.c +6 −6
  676. drivers/media/dvb-frontends/drxk_hard.c +12 −12
  677. drivers/media/dvb-frontends/lgdt3306a.c +1 −1
  678. drivers/media/dvb-frontends/mt352.c +1 −1
  679. drivers/media/dvb-frontends/mxl5xx.c +1 −1
  680. drivers/media/dvb-frontends/or51132.c +1 −1
  681. drivers/media/dvb-frontends/s5h1411.c +1 −1
  682. drivers/media/dvb-frontends/zl10353.c +2 −2
  683. drivers/media/pci/cx23885/cx23885-cards.c +2 −2
  684. drivers/media/pci/ddbridge/ddbridge-core.c +12 −11
  685. drivers/media/pci/meye/meye.c +1 −1
  686. drivers/media/pci/ttpci/av7110.c +2 −2
  687. drivers/media/pci/ttpci/av7110_hw.c +1 −1
  688. drivers/media/pci/ttpci/av7110_ipack.c +1 −1
  689. drivers/media/pci/ttpci/budget-av.c +1 −1
  690. drivers/media/pci/ttpci/budget.c +2 −2
  691. drivers/media/platform/sh_vou.c +2 −2
  692. drivers/media/radio/radio-si476x.c +2 −1
  693. drivers/media/radio/tea575x.c +1 −1
  694. drivers/media/rc/bpf-lirc.c +1 −1
  695. drivers/media/rc/ir-rc6-decoder.c +1 −1
  696. drivers/media/rc/ir-sony-decoder.c +1 −1
  697. drivers/media/tuners/xc5000.c +1 −1
  698. drivers/media/usb/b2c2/flexcop-usb.c +1 −1
  699. drivers/media/usb/cpia2/cpia2_core.c +18 −18
  700. drivers/media/usb/cx231xx/cx231xx-video.c +1 −1
  701. drivers/media/usb/dvb-usb/dib0700_devices.c +6 −6
  702. drivers/media/usb/dvb-usb/dw2102.c +3 −3
  703. drivers/media/v4l2-core/v4l2-ctrls.c +1 −1
  704. drivers/media/v4l2-core/v4l2-ioctl.c +0 −2
  705. drivers/media/v4l2-core/videobuf-core.c +1 −1
  706. drivers/memory/omap-gpmc.c +0 −1
  707. drivers/memstick/core/ms_block.c +6 −6
  708. drivers/memstick/host/jmb38x_ms.c +2 −2
  709. drivers/memstick/host/tifm_ms.c +2 −2
  710. drivers/message/fusion/mptbase.c +3 −3
  711. drivers/message/fusion/mptsas.c +1 −1
  712. drivers/message/fusion/mptscsih.c +2 −2
  713. drivers/mfd/db8500-prcmu.c +2 −2
  714. drivers/mfd/iqs62x.c +3 −3
  715. drivers/mfd/mfd-core.c +6 −6
  716. drivers/mfd/mxs-lradc.c +1 −1
  717. drivers/mfd/omap-usb-host.c +2 −2
  718. drivers/mfd/rave-sp.c +2 −2
  719. drivers/mfd/syscon.c +1 −1
  720. drivers/misc/eeprom/at25.c +5 −5
  721. drivers/misc/habanalabs/common/command_buffer.c +14 −2
  722. drivers/misc/habanalabs/common/command_submission.c +8 −0
  723. drivers/misc/habanalabs/common/debugfs.c +4 −4
  724. drivers/misc/habanalabs/common/device.c +7 −2
  725. drivers/misc/habanalabs/common/firmware_if.c +9 −0
  726. drivers/misc/habanalabs/common/habanalabs.h +5 −2
  727. drivers/misc/habanalabs/common/memory.c +7 −2
  728. drivers/misc/habanalabs/common/mmu.c +1 −1
  729. drivers/misc/habanalabs/common/pci.c +5 −3
  730. drivers/misc/habanalabs/common/sysfs.c +4 −3
  731. drivers/misc/habanalabs/gaudi/gaudi.c +67 −25
  732. drivers/misc/habanalabs/gaudi/gaudiP.h +2 −1
  733. drivers/misc/habanalabs/gaudi/gaudi_coresight.c +7 −1
  734. drivers/misc/habanalabs/goya/goya.c +31 −0
  735. drivers/misc/habanalabs/goya/goya_coresight.c +7 −1
  736. drivers/misc/mei/hdcp/mei_hdcp.c +24 −16
  737. drivers/misc/mic/scif/scif_api.c +2 −2
  738. drivers/misc/mic/scif/scif_rma.c +1 −1
  739. drivers/misc/sgi-gru/grukservices.c +2 −2
  740. drivers/misc/sgi-xp/xpc_main.c +2 −2
  741. drivers/misc/sgi-xp/xpc_partition.c +2 −2
  742. drivers/misc/sgi-xp/xpc_uv.c +1 −1
  743. drivers/mmc/core/host.c +1 −1
  744. drivers/mmc/host/atmel-mci.c +4 −4
  745. drivers/mmc/host/davinci_mmc.c +1 −1
  746. drivers/mmc/host/dw_mmc-k3.c +1 −1
  747. drivers/mmc/host/dw_mmc.c +3 −3
  748. drivers/mmc/host/jz4740_mmc.c +2 −2
  749. drivers/mmc/host/meson-mx-sdio.c +1 −1
  750. drivers/mmc/host/renesas_sdhi_core.c +1 −1
  751. drivers/mmc/host/sdhci-esdhc-imx.c +1 −1
  752. drivers/mmc/host/sdhci-s3c.c +1 −1
  753. drivers/mmc/host/sdhci-sprd.c +1 −1
  754. drivers/mmc/host/sdhci-xenon-phy.c +1 −1
  755. drivers/mmc/host/sdhci.c +1 −1
  756. drivers/mmc/host/tifm_sd.c +1 −1
  757. drivers/mmc/host/usdhi6rol0.c +3 −3
  758. drivers/mux/adgs1408.c +1 −1
  759. drivers/net/appletalk/cops.c +1 −1
  760. drivers/net/arcnet/arc-rimi.c +3 −3
  761. drivers/net/arcnet/com20020-isa.c +6 −6
  762. drivers/net/arcnet/com90io.c +2 −2
  763. drivers/net/arcnet/com90xx.c +3 −3
  764. drivers/net/bonding/bond_3ad.c +10 −9
  765. drivers/net/bonding/bond_alb.c +2 −2
  766. drivers/net/bonding/bond_main.c +43 −11
  767. drivers/net/can/at91_can.c +2 −2
  768. drivers/net/can/peak_canfd/peak_pciefd_main.c +1 −1
  769. drivers/net/can/sja1000/sja1000_platform.c +1 −1
  770. drivers/net/can/slcan.c +2 −2
  771. drivers/net/can/spi/mcp251x.c +1 −1
  772. drivers/net/can/usb/peak_usb/pcan_usb.c +1 −1
  773. drivers/net/can/usb/peak_usb/pcan_usb_core.c +1 −1
  774. drivers/net/can/usb/peak_usb/pcan_usb_pro.c +2 −2
  775. drivers/net/dsa/b53/b53_common.c +3 −1
  776. drivers/net/dsa/b53/b53_serdes.c +1 −1
  777. drivers/net/dsa/bcm_sf2.c +1 −1
  778. drivers/net/dsa/microchip/ksz9477.c +1 −1
  779. drivers/net/dsa/mt7530.c +1 −1
  780. drivers/net/dsa/mv88e6xxx/chip.c +1 −1
  781. drivers/net/dsa/ocelot/Kconfig +1 −1
  782. drivers/net/ethernet/3com/3c509.c +2 −2
  783. drivers/net/ethernet/3com/3c574_cs.c +4 −4
  784. drivers/net/ethernet/8390/axnet_cs.c +2 −1
  785. drivers/net/ethernet/8390/pcnet_cs.c +1 −1
  786. drivers/net/ethernet/alacritech/slicoss.c +6 −6
  787. drivers/net/ethernet/alteon/acenic.c +1 −1
  788. drivers/net/ethernet/amazon/ena/ena_netdev.c +18 −17
  789. drivers/net/ethernet/amd/amd8111e.c +1 −1
  790. drivers/net/ethernet/amd/xgbe/xgbe-drv.c +3 −3
  791. drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c +2 −2
  792. drivers/net/ethernet/broadcom/bgmac-bcma.c +1 −1
  793. drivers/net/ethernet/broadcom/bgmac-platform.c +1 −1
  794. drivers/net/ethernet/broadcom/bnx2.c +7 −7
  795. drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c +7 −7
  796. drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +2 −2
  797. drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c +2 −2
  798. drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c +2 −2
  799. drivers/net/ethernet/broadcom/bnxt/bnxt.c +8 −8
  800. drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +2 −2
  801. drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c +2 −2
  802. drivers/net/ethernet/broadcom/cnic.c +2 −2
  803. drivers/net/ethernet/broadcom/genet/bcmgenet.c +2 −2
  804. drivers/net/ethernet/broadcom/genet/bcmmii.c +1 −1
  805. drivers/net/ethernet/broadcom/tg3.c +27 −27
  806. drivers/net/ethernet/brocade/bna/bfa_ioc.c +3 −3
  807. drivers/net/ethernet/brocade/bna/bna_enet.c +1 −1
  808. drivers/net/ethernet/brocade/bna/bna_tx_rx.c +1 −1
  809. drivers/net/ethernet/cadence/macb_ptp.c +1 −1
  810. drivers/net/ethernet/cavium/liquidio/lio_main.c +14 −15
  811. drivers/net/ethernet/cavium/liquidio/lio_vf_main.c +12 −13
  812. drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c +1 −1
  813. drivers/net/ethernet/cavium/thunder/nicvf_main.c +2 −2
  814. drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c +1 −1
  815. drivers/net/ethernet/chelsio/cxgb3/l2t.c +1 −1
  816. drivers/net/ethernet/chelsio/cxgb4/l2t.c +1 −1
  817. drivers/net/ethernet/chelsio/cxgb4/sge.c +7 −3
  818. drivers/net/ethernet/chelsio/cxgb4/t4_hw.c +3 −3
  819. drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c +1 −1
  820. drivers/net/ethernet/cisco/enic/enic_main.c +1 −1
  821. drivers/net/ethernet/cortina/gemini.c +1 −3
  822. drivers/net/ethernet/davicom/dm9000.c +1 −1
  823. drivers/net/ethernet/dec/tulip/de4x5.c +3 −3
  824. drivers/net/ethernet/dec/tulip/tulip_core.c +1 −1
  825. drivers/net/ethernet/dec/tulip/winbond-840.c +1 −1
  826. drivers/net/ethernet/emulex/benet/be_ethtool.c +1 −1
  827. drivers/net/ethernet/freescale/dpaa/dpaa_eth.c +1 −1
  828. drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c +1 −1
  829. drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +2 −2
  830. drivers/net/ethernet/freescale/fec_main.c +2 −2
  831. drivers/net/ethernet/freescale/fman/fman_memac.c +1 −1
  832. drivers/net/ethernet/freescale/fman/fman_port.c +2 −2
  833. drivers/net/ethernet/freescale/gianfar.c +3 −1
  834. drivers/net/ethernet/freescale/ucc_geth.c +1 −1
  835. drivers/net/ethernet/hisilicon/hns/hns_ethtool.c +1 −1
  836. drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +1 −1
  837. drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +1 −3
  838. drivers/net/ethernet/ibm/ehea/ehea_main.c +1 −1
  839. drivers/net/ethernet/ibm/emac/core.c +1 −1
  840. drivers/net/ethernet/intel/e1000e/netdev.c +0 −1
  841. drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h +1 −1
  842. drivers/net/ethernet/intel/i40e/i40e_common.c +27 −8
  843. drivers/net/ethernet/intel/i40e/i40e_main.c +3 −0
  844. drivers/net/ethernet/intel/igb/igb_main.c +0 −1
  845. drivers/net/ethernet/intel/igc/igc_main.c +2 −3
  846. drivers/net/ethernet/intel/igc/igc_ptp.c +0 −2
  847. drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c +1 −1
  848. drivers/net/ethernet/marvell/mvneta.c +2 −2
  849. drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c +1 −1
  850. drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +2 −2
  851. drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c +1 −1
  852. drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +2 −2
  853. drivers/net/ethernet/marvell/skge.c +1 −1
  854. drivers/net/ethernet/marvell/sky2.c +2 −2
  855. drivers/net/ethernet/mediatek/mtk_eth_soc.c +3 −3
  856. drivers/net/ethernet/mellanox/mlxfw/mlxfw_fsm.c +2 −2
  857. drivers/net/ethernet/mellanox/mlxsw/core.c +9 −9
  858. drivers/net/ethernet/mellanox/mlxsw/core_env.c +3 −3
  859. drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c +2 −2
  860. drivers/net/ethernet/mellanox/mlxsw/spectrum.c +2 −2
  861. drivers/net/ethernet/mellanox/mlxsw/spectrum.h +5 −5
  862. drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c +16 −16
  863. drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c +3 −3
  864. drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +6 −6
  865. drivers/net/ethernet/microchip/lan743x_ethtool.c +1 −1
  866. drivers/net/ethernet/mscc/ocelot.c +1 −1
  867. drivers/net/ethernet/natsemi/natsemi.c +1 −1
  868. drivers/net/ethernet/neterion/vxge/vxge-config.c +3 −3
  869. drivers/net/ethernet/netronome/nfp/crypto/tls.c +1 −1
  870. drivers/net/ethernet/netronome/nfp/flower/action.c +1 −1
  871. drivers/net/ethernet/netronome/nfp/flower/cmsg.c +1 −1
  872. drivers/net/ethernet/netronome/nfp/flower/offload.c +1 −1
  873. drivers/net/ethernet/netronome/nfp/nfp_asm.c +1 −1
  874. drivers/net/ethernet/netronome/nfp/nfp_net_common.c +2 −2
  875. drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c +2 −2
  876. drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c +1 −1
  877. drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c +1 −1
  878. drivers/net/ethernet/packetengines/yellowfin.c +1 −1
  879. drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c +2 −2
  880. drivers/net/ethernet/qlogic/qed/qed_cxt.c +1 −1
  881. drivers/net/ethernet/qlogic/qed/qed_dev.c +2 −2
  882. drivers/net/ethernet/qlogic/qed/qed_main.c +2 −2
  883. drivers/net/ethernet/qlogic/qed/qed_mcp.c +5 −5
  884. drivers/net/ethernet/qlogic/qla3xxx.c +1 −1
  885. drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c +2 −2
  886. drivers/net/ethernet/realtek/r8169_main.c +2 −2
  887. drivers/net/ethernet/rocker/rocker_main.c +4 −4
  888. drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c +2 −2
  889. drivers/net/ethernet/sfc/ef100.c +4 −4
  890. drivers/net/ethernet/sfc/ef100_nic.c +6 −4
  891. drivers/net/ethernet/sfc/ef100_rx.c +5 −0
  892. drivers/net/ethernet/sfc/ef100_rx.h +1 −0
  893. drivers/net/ethernet/sfc/efx.h +8 −0
  894. drivers/net/ethernet/sfc/falcon/ethtool.c +1 −1
  895. drivers/net/ethernet/sfc/falcon/farch.c +7 −7
  896. drivers/net/ethernet/sfc/farch.c +7 −7
  897. drivers/net/ethernet/sfc/mcdi_filters.c +1 −1
  898. drivers/net/ethernet/sfc/mcdi_port_common.c +1 −1
  899. drivers/net/ethernet/sfc/net_driver.h +4 −0
  900. drivers/net/ethernet/sfc/nic.c +4 −0
  901. drivers/net/ethernet/sfc/rx.c +1 −1
  902. drivers/net/ethernet/sfc/rx_common.c +3 −1
  903. drivers/net/ethernet/sis/sis900.c +1 −1
  904. drivers/net/ethernet/smsc/smc911x.c +1 −1
  905. drivers/net/ethernet/socionext/netsec.c +2 −2
  906. drivers/net/ethernet/stmicro/stmmac/dwmac-anarion.c +4 −3
  907. drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c +2 −2
  908. drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +1 −1
  909. drivers/net/ethernet/sun/cassini.c +1 −1
  910. drivers/net/ethernet/sun/niu.c +2 −2
  911. drivers/net/ethernet/sun/sungem.c +1 −1
  912. drivers/net/ethernet/ti/cpsw-phy-sel.c +2 −2
  913. drivers/net/ethernet/ti/cpsw_priv.c +2 −2
  914. drivers/net/ethernet/ti/tlan.c +1 −1
  915. drivers/net/ethernet/toshiba/ps3_gelic_wireless.c +1 −1
  916. drivers/net/ethernet/toshiba/spider_net.c +14 −14
  917. drivers/net/ethernet/xircom/xirc2ps_cs.c +1 −1
  918. drivers/net/fddi/skfp/cfm.c +2 −15
  919. drivers/net/fddi/skfp/fplustm.c +0 −4
  920. drivers/net/fddi/skfp/hwmtm.c +0 −4
  921. drivers/net/fddi/skfp/pcmplc.c +2 −2
  922. drivers/net/fddi/skfp/smt.c +2 −5
  923. drivers/net/fjes/fjes_main.c +1 −1
  924. drivers/net/hamradio/baycom_epp.c +1 −1
  925. drivers/net/hamradio/mkiss.c +2 −3
  926. drivers/net/hyperv/netvsc_drv.c +2 −2
  927. drivers/net/ipvlan/ipvlan_main.c +22 −5
  928. drivers/net/macvlan.c +18 −5
  929. drivers/net/mii.c +1 −1
  930. drivers/net/netdevsim/bus.c +1 −1
  931. drivers/net/netdevsim/fib.c +3 −3
  932. drivers/net/phy/adin.c +2 −2
  933. drivers/net/phy/dp83640.c +4 −4
  934. drivers/net/phy/fixed_phy.c +2 −2
  935. drivers/net/phy/mscc/mscc_main.c +2 −2
  936. drivers/net/phy/phy.c +2 −2
  937. drivers/net/phy/phy_device.c +1 −1
  938. drivers/net/phy/phylink.c +2 −2
  939. drivers/net/phy/sfp-bus.c +2 −2
  940. drivers/net/phy/sfp.c +6 −6
  941. drivers/net/plip/plip.c +13 −13
  942. drivers/net/tun.c +3 −3
  943. drivers/net/usb/aqc111.c +3 −3
  944. drivers/net/usb/catc.c +1 −1
  945. drivers/net/usb/cdc-phonet.c +1 −1
  946. drivers/net/usb/lan78xx.c +2 −2
  947. drivers/net/usb/pegasus.c +2 −2
  948. drivers/net/usb/r8152.c +3 −3
  949. drivers/net/usb/rtl8150.c +1 −1
  950. drivers/net/usb/usbnet.c +3 −3
  951. drivers/net/veth.c +4 −4
  952. drivers/net/virtio_net.c +3 −3
  953. drivers/net/vmxnet3/vmxnet3_ethtool.c +1 −1
  954. drivers/net/wan/dlci.c +1 −2
  955. drivers/net/wan/hdlc.c +1 −0
  956. drivers/net/wan/hdlc_x25.c +16 −1
  957. drivers/net/wan/lapbether.c +1 −1
  958. drivers/net/wan/sdla.c +1 −1
  959. drivers/net/wan/x25_asy.c +1 −1
  960. drivers/net/wimax/i2400m/control.c +1 −1
  961. drivers/net/wimax/i2400m/usb-fw.c +1 −1
  962. drivers/net/wimax/i2400m/usb-tx.c +1 −1
  963. drivers/net/wimax/i2400m/usb.c +1 −1
  964. drivers/net/xen-netback/hash.c +1 −1
  965. drivers/net/xen-netback/xenbus.c +1 −1
  966. drivers/net/xen-netfront.c +1 −1
  967. drivers/nfc/pn533/pn533.c +2 −2
  968. drivers/nfc/st21nfca/dep.c +1 −1
  969. drivers/nfc/trf7970a.c +2 −2
  970. drivers/ntb/ntb_transport.c +2 −2
  971. drivers/nvdimm/dimm_devs.c +1 −0
  972. drivers/nvme/host/core.c +60 −38
  973. drivers/nvme/host/fc.c +3 −3
  974. drivers/nvme/host/multipath.c +26 −43
  975. drivers/nvme/host/nvme.h +27 −4
  976. drivers/nvme/host/pci.c +10 −9
  977. drivers/nvme/host/rdma.c +2 −2
  978. drivers/nvme/host/tcp.c +2 −3
  979. drivers/nvme/target/configfs.c +1 −0
  980. drivers/nvme/target/core.c +7 −1
  981. drivers/nvme/target/fcloop.c +1 −1
  982. drivers/nvme/target/io-cmd-bdev.c +0 −1
  983. drivers/nvme/target/loop.c +1 −1
  984. drivers/nvme/target/passthru.c +17 −8
  985. drivers/nvme/target/rdma.c +2 −2
  986. drivers/of/address.c +20 −1
  987. drivers/opp/core.c +12 −7
  988. drivers/parport/ieee1284.c +3 −3
  989. drivers/parport/parport_pc.c +1 −1
  990. drivers/pci/controller/dwc/pci-imx6.c +3 −3
  991. drivers/pci/controller/pci-rcar-gen2.c +1 −1
  992. drivers/pci/hotplug/ibmphp_res.c +1 −1
  993. drivers/pci/hotplug/pciehp_ctrl.c +2 −2
  994. drivers/pci/hotplug/s390_pci_hpc.c +5 −7
  995. drivers/pci/hotplug/shpchp_ctrl.c +2 −2
  996. drivers/pci/p2pdma.c +6 −4
  997. drivers/pci/pci.c +2 −2
  998. drivers/pci/proc.c +1 −1
  999. drivers/pci/quirks.c +2 −2
  1000. drivers/pci/setup-bus.c +1 −1
  1001. drivers/pci/xen-pcifront.c +1 −1
  1002. drivers/pcmcia/db1xxx_ss.c +4 −4
  1003. drivers/perf/arm-ccn.c +1 −1
  1004. drivers/perf/arm_spe_pmu.c +2 −2
  1005. drivers/phy/qualcomm/phy-qcom-usb-hs.c +1 −1
  1006. drivers/phy/rockchip/phy-rockchip-inno-usb2.c +4 −4
  1007. drivers/platform/olpc/olpc-xo175-ec.c +1 −1
  1008. drivers/platform/x86/acer-wmi.c +4 −4
  1009. drivers/platform/x86/dell-laptop.c +2 −2
  1010. drivers/platform/x86/surfacepro3_button.c +4 −4
  1011. drivers/platform/x86/thinkpad_acpi.c +3 −3
  1012. drivers/platform/x86/toshiba_acpi.c +1 −1
  1013. drivers/power/supply/ab8500_charger.c +2 −2
  1014. drivers/power/supply/ab8500_fg.c +2 −2
  1015. drivers/power/supply/abx500_chargalg.c +13 −13
  1016. drivers/power/supply/axp20x_usb_power.c +1 −1
  1017. drivers/power/supply/cros_usbpd-charger.c +1 −1
  1018. drivers/power/supply/max8925_power.c +1 −1
  1019. drivers/power/supply/wm831x_power.c +1 −1
  1020. drivers/power/supply/wm8350_power.c +1 −1
  1021. drivers/ps3/ps3av.c +1 −1
  1022. drivers/ps3/ps3av_cmd.c +2 −2
  1023. drivers/ptp/ptp_clockmatrix.c +43 −13
  1024. drivers/ptp/ptp_clockmatrix.h +2 −0
  1025. drivers/rapidio/devices/rio_mport_cdev.c +1 −1
  1026. drivers/regulator/axp20x-regulator.c +4 −4
  1027. drivers/regulator/core.c +1 −1
  1028. drivers/regulator/slg51000-regulator.c +1 −1
  1029. drivers/regulator/twl6030-regulator.c +1 −1
  1030. drivers/remoteproc/omap_remoteproc.c +0 −1
  1031. drivers/reset/reset-imx7.c +7 −7
  1032. drivers/rpmsg/qcom_glink_native.c +2 −2
  1033. drivers/rtc/rtc-m41t80.c +1 −1
  1034. drivers/rtc/rtc-pcf85063.c +1 −1
  1035. drivers/rtc/rtc-pcf8523.c +1 −1
  1036. drivers/rtc/rtc-stmp3xxx.c +1 −1
  1037. drivers/s390/cio/css.c +5 −0
  1038. drivers/s390/net/ctcm_fsms.c +1 −1
  1039. drivers/s390/net/ctcm_mpc.c +3 −3
  1040. drivers/s390/net/qeth_core_main.c +2 −2
  1041. drivers/s390/net/qeth_ethtool.c +3 −3
  1042. drivers/s390/net/qeth_l2_main.c +1 −1
  1043. drivers/s390/net/qeth_l3_main.c +1 −1
  1044. drivers/s390/scsi/zfcp_fsf.c +2 −2
  1045. drivers/scsi/53c700.c +1 −1
  1046. drivers/scsi/BusLogic.c +1 −1
  1047. drivers/scsi/FlashPoint.c +6 −3
  1048. drivers/scsi/NCR5380.c +1 −1
  1049. drivers/scsi/aacraid/aachba.c +4 −4
  1050. drivers/scsi/aacraid/commsup.c +1 −1
  1051. drivers/scsi/aacraid/linit.c +1 −1
  1052. drivers/scsi/aic7xxx/aic79xx_core.c +20 −20
  1053. drivers/scsi/aic7xxx/aic79xx_osm.c +1 −1
  1054. drivers/scsi/aic7xxx/aic7xxx_core.c +14 −14
  1055. drivers/scsi/aic94xx/aic94xx_scb.c +5 −5
  1056. drivers/scsi/aic94xx/aic94xx_tmf.c +1 −1
  1057. drivers/scsi/arcmsr/arcmsr_hba.c +1 −1
  1058. drivers/scsi/arm/fas216.c +6 −6
  1059. drivers/scsi/be2iscsi/be_iscsi.c +1 −1
  1060. drivers/scsi/be2iscsi/be_main.c +1 −1
  1061. drivers/scsi/bfa/bfa_fcpim.c +3 −3
  1062. drivers/scsi/bfa/bfa_fcs_lport.c +2 −2
  1063. drivers/scsi/bfa/bfa_fcs_rport.c +7 −7
  1064. drivers/scsi/bfa/bfa_ioc.c +3 −3
  1065. drivers/scsi/bfa/bfa_svc.c +1 −1
  1066. drivers/scsi/bnx2fc/bnx2fc_hwi.c +0 −1
  1067. drivers/scsi/csiostor/csio_hw.c +1 −1
  1068. drivers/scsi/csiostor/csio_lnode.c +0 −1
  1069. drivers/scsi/csiostor/csio_wr.c +1 −1
  1070. drivers/scsi/cxgbi/cxgb3i/cxgb3i.c +1 −1
  1071. drivers/scsi/cxgbi/cxgb4i/cxgb4i.c +1 −1
  1072. drivers/scsi/cxlflash/main.c +14 −14
  1073. drivers/scsi/cxlflash/superpipe.c +4 −6
  1074. drivers/scsi/device_handler/scsi_dh_hp_sw.c +2 −2
  1075. drivers/scsi/esas2r/esas2r_flash.c +1 −1
  1076. drivers/scsi/esas2r/esas2r_init.c +2 −2
  1077. drivers/scsi/esp_scsi.c +2 −2
  1078. drivers/scsi/fcoe/fcoe_ctlr.c +4 −4
  1079. drivers/scsi/g_NCR5380.c +1 −1
  1080. drivers/scsi/hisi_sas/hisi_sas_main.c +1 −1
  1081. drivers/scsi/hpsa.c +5 −5
  1082. drivers/scsi/ibmvscsi/ibmvfc.c +3 −3
  1083. drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c +3 −3
  1084. drivers/scsi/imm.c +7 −7
  1085. drivers/scsi/isci/phy.c +1 −1
  1086. drivers/scsi/isci/remote_device.c +2 −2
  1087. drivers/scsi/isci/remote_node_context.c +3 −3
  1088. drivers/scsi/isci/request.c +1 −1
  1089. drivers/scsi/libfc/fc_exch.c +2 −2
  1090. drivers/scsi/libfc/fc_fcp.c +4 −4
  1091. drivers/scsi/libfc/fc_lport.c +1 −1
  1092. drivers/scsi/libfc/fc_rport.c +1 −1
  1093. drivers/scsi/libiscsi.c +3 −3
  1094. drivers/scsi/libiscsi_tcp.c +1 −1
  1095. drivers/scsi/libsas/sas_ata.c +1 −1
  1096. drivers/scsi/libsas/sas_discover.c +1 −1
  1097. drivers/scsi/libsas/sas_expander.c +1 −1
  1098. drivers/scsi/libsas/sas_scsi_host.c +1 −1
  1099. drivers/scsi/lpfc/lpfc_ct.c +2 −2
  1100. drivers/scsi/lpfc/lpfc_els.c +1 −1
  1101. drivers/scsi/lpfc/lpfc_hbadisc.c +3 −4
  1102. drivers/scsi/lpfc/lpfc_nportdisc.c +1 −1
  1103. drivers/scsi/lpfc/lpfc_nvme.c +1 −1
  1104. drivers/scsi/lpfc/lpfc_scsi.c +4 −4
  1105. drivers/scsi/lpfc/lpfc_sli.c +14 −14
  1106. drivers/scsi/megaraid.c +6 −6
  1107. drivers/scsi/megaraid/megaraid_mbox.c +1 −1
  1108. drivers/scsi/megaraid/megaraid_sas_base.c +1 −1
  1109. drivers/scsi/megaraid/megaraid_sas_fusion.c +1 −1
  1110. drivers/scsi/mesh.c +1 −1
  1111. drivers/scsi/mpt3sas/mpt3sas_base.c +1 −1
  1112. drivers/scsi/mpt3sas/mpt3sas_ctl.c +1 −1
  1113. drivers/scsi/mpt3sas/mpt3sas_scsih.c +4 −4
  1114. drivers/scsi/myrb.c +4 −4
  1115. drivers/scsi/ncr53c8xx.c +7 −7
  1116. drivers/scsi/pcmcia/nsp_cs.c +1 −1
  1117. drivers/scsi/ppa.c +5 −5
  1118. drivers/scsi/qla2xxx/qla_dbg.h +3 −0
  1119. drivers/scsi/qla2xxx/qla_def.h +1 −0
  1120. drivers/scsi/qla2xxx/qla_gs.c +40 −10
  1121. drivers/scsi/qla2xxx/qla_init.c +1 −1
  1122. drivers/scsi/qla2xxx/qla_iocb.c +1 −1
  1123. drivers/scsi/qla2xxx/qla_isr.c +7 −7
  1124. drivers/scsi/qla2xxx/qla_mbx.c +7 −15
  1125. drivers/scsi/qla2xxx/qla_nvme.c +14 −1
  1126. drivers/scsi/qla2xxx/qla_os.c +5 −4
  1127. drivers/scsi/qla2xxx/qla_sup.c +3 −3
  1128. drivers/scsi/qla2xxx/qla_target.c +4 −4
  1129. drivers/scsi/qla4xxx/ql4_os.c +1 −1
  1130. drivers/scsi/qlogicpti.c +10 −10
  1131. drivers/scsi/scsi_debug.c +2 −0
  1132. drivers/scsi/scsi_error.c +14 −14
  1133. drivers/scsi/scsi_ioctl.c +2 −2
  1134. drivers/scsi/scsi_lib.c +1 −1
  1135. drivers/scsi/smartpqi/smartpqi_init.c +8 −9
  1136. drivers/scsi/sr.c +2 −2
  1137. drivers/scsi/st.c +4 −4
  1138. drivers/scsi/sun3_scsi.c +2 −2
  1139. drivers/scsi/sym53c8xx_2/sym_fw.c +1 −1
  1140. drivers/scsi/sym53c8xx_2/sym_hipd.c +2 −2
  1141. drivers/scsi/sym53c8xx_2/sym_nvram.c +1 −1
  1142. drivers/scsi/ufs/ti-j721e-ufs.c +1 −0
  1143. drivers/scsi/ufs/ufs-mediatek.c +1 −1
  1144. drivers/scsi/ufs/ufs_bsg.c +1 −1
  1145. drivers/scsi/ufs/ufshcd-pci.c +14 −2
  1146. drivers/scsi/ufs/ufshcd.c +22 −17
  1147. drivers/scsi/ufs/ufshcd.h +8 −1
  1148. drivers/scsi/virtio_scsi.c +1 −1
  1149. drivers/scsi/vmw_pvscsi.c +1 −1
  1150. drivers/scsi/wd33c93.c +1 −1
  1151. drivers/scsi/xen-scsifront.c +1 −1
  1152. drivers/soc/qcom/socinfo.c +11 −11
  1153. drivers/soc/tegra/pmc.c +1 −1
  1154. drivers/spi/Kconfig +3 −0
  1155. drivers/spi/spi-bcm2835aux.c +2 −2
  1156. drivers/spi/spi-fsl-cpm.c +2 −2
  1157. drivers/spi/spi-sprd-adi.c +1 −1
  1158. drivers/spi/spi-stm32.c +62 −38
  1159. drivers/spi/spi.c +20 −1
  1160. drivers/ssb/driver_chipcommon.c +1 −1
  1161. drivers/ssb/driver_mipscore.c +1 −1
  1162. drivers/ssb/scan.c +1 −1
  1163. drivers/staging/media/atomisp/pci/atomisp_cmd.c +1 −1
  1164. drivers/staging/media/atomisp/pci/atomisp_compat_css20.c +4 −4
  1165. drivers/staging/media/atomisp/pci/atomisp_ioctl.c +0 −1
  1166. drivers/staging/media/atomisp/pci/atomisp_v4l2.c +1 −1
  1167. drivers/staging/media/atomisp/pci/hmm/hmm_bo.c +1 −1
  1168. drivers/staging/media/atomisp/pci/sh_css.c +1 −1
  1169. drivers/staging/media/hantro/hantro_g1_mpeg2_dec.c +1 −1
  1170. drivers/staging/media/hantro/rk3399_vpu_hw_mpeg2_dec.c +1 −1
  1171. drivers/staging/media/imx/imx-media-csi.c +1 −1
  1172. drivers/staging/media/usbvision/usbvision-i2c.c +3 −3
  1173. drivers/target/iscsi/cxgbit/cxgbit_main.c +1 −1
  1174. drivers/target/iscsi/iscsi_target.c +1 −1
  1175. drivers/target/target_core_pr.c +2 −2
  1176. drivers/target/target_core_sbc.c +1 −1
  1177. drivers/target/target_core_transport.c +2 −2
  1178. drivers/target/tcm_fc/tfc_cmd.c +1 −1
  1179. drivers/thermal/qcom/tsens-v0_1.c +4 −4
  1180. drivers/thermal/qcom/tsens-v1.c +2 −2
  1181. drivers/thunderbolt/ctl.c +1 −1
  1182. drivers/thunderbolt/switch.c +1 −1
  1183. drivers/thunderbolt/tunnel.c +2 −2
  1184. drivers/tty/hvc/hvc_xen.c +1 −1
  1185. drivers/tty/mips_ejtag_fdc.c +1 −1
  1186. drivers/tty/n_gsm.c +2 −2
  1187. drivers/tty/n_hdlc.c +1 −1
  1188. drivers/tty/n_r3964.c +0 −1
  1189. drivers/tty/serial/8250/8250_em.c +1 −1
  1190. drivers/tty/serial/8250/8250_exar.c +21 −3
  1191. drivers/tty/serial/8250/8250_fintek.c +1 −1
  1192. drivers/tty/serial/8250/8250_pci.c +1 −1
  1193. drivers/tty/serial/8250/8250_port.c +7 −4
  1194. drivers/tty/serial/8250/8250_uniphier.c +3 −3
  1195. drivers/tty/serial/Kconfig +1 −0
  1196. drivers/tty/serial/Makefile +1 −0
  1197. drivers/tty/serial/amba-pl011.c +9 −7
  1198. drivers/tty/serial/atmel_serial.c +1 −1
  1199. drivers/tty/serial/omap-serial.c +0 −2
  1200. drivers/tty/serial/qcom_geni_serial.c +8 −3
  1201. drivers/tty/serial/rda-uart.c +1 −1
  1202. drivers/tty/serial/samsung_tty.c +5 −3
  1203. drivers/tty/serial/serial-tegra.c +1 −1
  1204. drivers/tty/serial/serial_core.c +1 −1
  1205. drivers/tty/serial/stm32-usart.c +1 −1
  1206. drivers/tty/serial/sunsu.c +1 −1
  1207. drivers/tty/serial/sunzilog.c +1 −1
  1208. drivers/tty/serial/xilinx_uartps.c +1 −1
  1209. drivers/tty/tty_ioctl.c +1 −1
  1210. drivers/tty/vt/vt.c +6 −5
  1211. drivers/tty/vt/vt_ioctl.c +11 −1
  1212. drivers/usb/c67x00/c67x00-sched.c +2 −1
  1213. drivers/usb/class/cdc-acm.c +10 −12
  1214. drivers/usb/core/driver.c +38 −2
  1215. drivers/usb/core/generic.c +3 −2
  1216. drivers/usb/core/hcd-pci.c +4 −1
  1217. drivers/usb/core/hub.c +1 −1
  1218. drivers/usb/core/quirks.c +7 −0
  1219. drivers/usb/dwc3/core.c +2 −3
  1220. drivers/usb/dwc3/gadget.c +89 −18
  1221. drivers/usb/gadget/function/f_mass_storage.c +0 −1
  1222. drivers/usb/gadget/function/f_ncm.c +69 −12
  1223. drivers/usb/gadget/function/f_tcm.c +4 −3
  1224. drivers/usb/gadget/u_f.h +27 −11
  1225. drivers/usb/gadget/udc/atmel_usba_udc.c +1 −1
  1226. drivers/usb/gadget/udc/fsl_udc_core.c +1 −1
  1227. drivers/usb/gadget/udc/pxa25x_udc.c +2 −2
  1228. drivers/usb/host/isp116x-hcd.c +3 −3
  1229. drivers/usb/host/ohci-exynos.c +2 −3
  1230. drivers/usb/host/pci-quirks.c +2 −1
  1231. drivers/usb/host/xhci-dbgcap.c +1 −1
  1232. drivers/usb/host/xhci-debugfs.c +4 −4
  1233. drivers/usb/host/xhci-hub.c +11 −10
  1234. drivers/usb/host/xhci-mem.c +2 −2
  1235. drivers/usb/host/xhci-pci-renesas.c +1 −18
  1236. drivers/usb/host/xhci-ring.c +1 −1
  1237. drivers/usb/host/xhci-tegra.c +3 −1
  1238. drivers/usb/host/xhci.c +3 −2
  1239. drivers/usb/misc/lvstest.c +1 −1
  1240. drivers/usb/misc/yurex.c +1 −1
  1241. drivers/usb/musb/cppi_dma.c +1 −1
  1242. drivers/usb/musb/musb_core.c +6 −7
  1243. drivers/usb/musb/musb_dsps.c +3 −3
  1244. drivers/usb/musb/musb_gadget_ep0.c +2 −2
  1245. drivers/usb/musb/musb_host.c +3 −3
  1246. drivers/usb/musb/musb_virthub.c +1 −1
  1247. drivers/usb/musb/omap2430.c +1 −1
  1248. drivers/usb/musb/tusb6010.c +1 −1
  1249. drivers/usb/phy/phy-jz4770.c +1 −0
  1250. drivers/usb/storage/sddr55.c +1 −1
  1251. drivers/usb/storage/uas.c +1 −1
  1252. drivers/usb/storage/unusual_devs.h +1 −1
  1253. drivers/usb/storage/unusual_uas.h +14 −0
  1254. drivers/usb/typec/tcpm/tcpci.c +1 −1
  1255. drivers/usb/typec/tcpm/tcpm.c +25 −3
  1256. drivers/usb/typec/ucsi/displayport.c +1 −8
  1257. drivers/usb/typec/ucsi/ucsi.c +53 −50
  1258. drivers/usb/usbip/stub_dev.c +6 −0
  1259. drivers/vdpa/ifcvf/ifcvf_base.h +1 −1
  1260. drivers/vdpa/ifcvf/ifcvf_main.c +7 −2
  1261. drivers/vdpa/mlx5/net/mlx5_vnet.c +25 −25
  1262. drivers/vfio/pci/vfio_pci.c +1 −1
  1263. drivers/vfio/pci/vfio_pci_private.h +2 −0
  1264. drivers/vfio/pci/vfio_pci_rdwr.c +96 −24
  1265. drivers/vfio/vfio_iommu_type1.c +67 −6
  1266. drivers/vhost/iotlb.c +2 −2
  1267. drivers/video/backlight/adp8860_bl.c +1 −1
  1268. drivers/video/fbdev/acornfb.c +1 −1
  1269. drivers/video/fbdev/arcfb.c +1 −1
  1270. drivers/video/fbdev/atmel_lcdfb.c +2 −2
  1271. drivers/video/fbdev/aty/radeon_pm.c +3 −3
  1272. drivers/video/fbdev/cirrusfb.c +2 −2
  1273. drivers/video/fbdev/controlfb.c +3 −1
  1274. drivers/video/fbdev/core/fbcon.c +23 −2
  1275. drivers/video/fbdev/core/fbmem.c +1 −1
  1276. drivers/video/fbdev/efifb.c +1 −1
  1277. drivers/video/fbdev/fsl-diu-fb.c +2 −2
  1278. drivers/video/fbdev/gxt4500.c +1 −1
  1279. drivers/video/fbdev/hyperv_fb.c +2 −2
  1280. drivers/video/fbdev/i740fb.c +1 −1
  1281. drivers/video/fbdev/mmp/fb/mmpfb.c +0 −2
  1282. drivers/video/fbdev/nvidia/nv_hw.c +1 −1
  1283. drivers/video/fbdev/offb.c +2 −2
  1284. drivers/video/fbdev/omap/lcdc.c +2 −2
  1285. drivers/video/fbdev/omap/omapfb_main.c +10 −10
  1286. drivers/video/fbdev/omap2/omapfb/dss/dispc.c +2 −2
  1287. drivers/video/fbdev/omap2/omapfb/omapfb-ioctl.c +1 −1
  1288. drivers/video/fbdev/omap2/omapfb/omapfb-main.c +1 −1
  1289. drivers/video/fbdev/pm2fb.c +2 −2
  1290. drivers/video/fbdev/pxa168fb.c +0 −4
  1291. drivers/video/fbdev/pxafb.c +1 −1
  1292. drivers/video/fbdev/riva/fbdev.c +1 −1
  1293. drivers/video/fbdev/s3c-fb.c +3 −3
  1294. drivers/video/fbdev/sa1100fb.c +1 −1
  1295. drivers/video/fbdev/savage/savagefb_driver.c +1 −1
  1296. drivers/video/fbdev/sh_mobile_lcdcfb.c +2 −2
  1297. drivers/video/fbdev/sis/sis_main.c +4 −4
  1298. drivers/video/fbdev/sm501fb.c +1 −1
  1299. drivers/video/fbdev/stifb.c +2 −2
  1300. drivers/video/fbdev/tdfxfb.c +1 −1
  1301. drivers/video/fbdev/via/lcd.c +1 −1
  1302. drivers/video/fbdev/xen-fbfront.c +1 −1
  1303. drivers/watchdog/sc1200wdt.c +1 −1
  1304. drivers/watchdog/wdrtas.c +1 −1
  1305. drivers/xen/events/events_base.c +8 −8
  1306. drivers/xen/pvcalls-front.c +1 −1
  1307. drivers/xen/xen-acpi-memhotplug.c +1 −1
  1308. drivers/xen/xen-pciback/xenbus.c +1 −1
  1309. drivers/xen/xen-scsiback.c +1 −1
  1310. drivers/xen/xenbus/xenbus_client.c +8 −2
  1311. drivers/xen/xenbus/xenbus_probe_frontend.c +2 −2
  1312. fs/9p/vfs_file.c +1 −1
  1313. fs/adfs/dir_f.c +6 −6
  1314. fs/affs/inode.c +1 −1
  1315. fs/affs/super.c +3 −3
  1316. fs/afs/cmservice.c +8 −8
  1317. fs/afs/dynroot.c +11 −9
  1318. fs/afs/file.c +1 −1
  1319. fs/afs/flock.c +0 −1
  1320. fs/afs/fs_operation.c +1 −0
  1321. fs/afs/fsclient.c +21 −21
  1322. fs/afs/misc.c +9 −9
  1323. fs/afs/rotate.c +1 −1
  1324. fs/afs/rxrpc.c +3 −3
  1325. fs/afs/vlclient.c +12 −12
  1326. fs/afs/write.c +1 −1
  1327. fs/afs/yfsclient.c +25 −25
  1328. fs/aio.c +1 −1
  1329. fs/binfmt_flat.c +12 −8
  1330. fs/btrfs/ctree.c +1 −1
  1331. fs/btrfs/ctree.h +3 −3
  1332. fs/btrfs/disk-io.c +1 −0
  1333. fs/btrfs/extent-tree.c +11 −6
  1334. fs/btrfs/file.c +1 −1
  1335. fs/btrfs/free-space-cache.c +1 −1
  1336. fs/btrfs/inode.c +14 −15
  1337. fs/btrfs/super.c +1 −0
  1338. fs/btrfs/tree-log.c +6 −4
  1339. fs/buffer.c +10 −1
  1340. fs/ceph/caps.c +7 −7
  1341. fs/ceph/debugfs.c +2 −2
  1342. fs/ceph/dir.c +14 −19
  1343. fs/ceph/file.c +4 −3
  1344. fs/ceph/inode.c +9 −10
  1345. fs/ceph/mds_client.h +1 −1
  1346. fs/ceph/quota.c +2 −2
  1347. fs/ceph/super.h +38 −35
  1348. fs/cifs/cifsglob.h +15 −0
  1349. fs/cifs/cifssmb.c +1 −1
  1350. fs/cifs/connect.c +6 −6
  1351. fs/cifs/sess.c +3 −3
  1352. fs/cifs/smb2pdu.c +1 −1
  1353. fs/configfs/dir.c +2 −2
  1354. fs/dax.c +1 −1
  1355. fs/dlm/lock.c +1 −1
  1356. fs/erofs/zmap.c +3 −3
  1357. fs/eventpoll.c +13 −13
  1358. fs/ext2/inode.c +2 −2
  1359. fs/ext2/super.c +1 −1
  1360. fs/ext4/Kconfig +1 −1
  1361. fs/ext4/balloc.c +12 −4
  1362. fs/ext4/block_validity.c +69 −90
  1363. fs/ext4/ext4.h +63 −28
  1364. fs/ext4/ext4_jbd2.c +25 −0
  1365. fs/ext4/extents.c +18 −24
  1366. fs/ext4/file.c +7 −4
  1367. fs/ext4/hash.c +2 −2
  1368. fs/ext4/indirect.c +9 −11
  1369. fs/ext4/inline.c +2 −2
  1370. fs/ext4/inode.c +16 −16
  1371. fs/ext4/ioctl.c +17 −17
  1372. fs/ext4/mballoc.c +244 −45
  1373. fs/ext4/mballoc.h +4 −0
  1374. fs/ext4/move_extent.c +2 −2
  1375. fs/ext4/namei.c +39 −27
  1376. fs/ext4/readpage.c +2 −2
  1377. fs/ext4/super.c +189 −79
  1378. fs/ext4/sysfs.c +13 −0
  1379. fs/ext4/xattr.c +1 −2
  1380. fs/f2fs/f2fs.h +1 −1
  1381. fs/f2fs/node.c +2 −2
  1382. fs/fcntl.c +2 −2
  1383. fs/fs-writeback.c +53 −50
  1384. fs/fs_context.c +1 −1
  1385. fs/fsopen.c +1 −1
  1386. fs/gfs2/bmap.c +2 −2
  1387. fs/gfs2/log.c +31 −0
  1388. fs/gfs2/quota.c +1 −1
  1389. fs/gfs2/trans.c +1 −0
  1390. fs/hfsplus/wrapper.c +1 −1
  1391. fs/io-wq.c +19 −2
  1392. fs/io_uring.c +137 −137
  1393. fs/iomap/seek.c +2 −2
  1394. fs/jbd2/journal.c +9 −7
  1395. fs/jbd2/recovery.c +12 −34
  1396. fs/jbd2/transaction.c +27 −6
  1397. fs/jffs2/fs.c +1 −1
  1398. fs/jffs2/readinode.c +1 −1
  1399. fs/libfs.c +2 −2
  1400. fs/locks.c +3 −3
  1401. fs/nfs/blocklayout/blocklayout.c +1 −1
  1402. fs/nfs/dir.c +1 −1
  1403. fs/nfs/filelayout/filelayout.c +1 −1
  1404. fs/nfs/flexfilelayout/flexfilelayout.c +2 −2
  1405. fs/nfs/fs_context.c +12 −10
  1406. fs/nfs/nfs3acl.c +2 −2
  1407. fs/nfs/nfs4file.c +1 −1
  1408. fs/nfs/nfs4idmap.c +2 −2
  1409. fs/nfs/nfs4proc.c +16 −16
  1410. fs/nfs/nfs4state.c +7 −7
  1411. fs/nfs/pagelist.c +1 −1
  1412. fs/nfs/pnfs.c +1 −1
  1413. fs/nfs_common/nfsacl.c +1 −1
  1414. fs/nfsd/blocklayout.c +2 −2
  1415. fs/nfsd/nfs4callback.c +1 −1
  1416. fs/nfsd/nfs4layouts.c +1 −1
  1417. fs/nfsd/nfs4proc.c +1 −1
  1418. fs/nfsd/nfs4state.c +8 −6
  1419. fs/nfsd/nfsfh.c +2 −2
  1420. fs/nfsd/nfsproc.c +1 −1
  1421. fs/nfsd/nfssvc.c +1 −1
  1422. fs/nfsd/vfs.c +2 −2
  1423. fs/nilfs2/bmap.c +1 −1
  1424. fs/nilfs2/recovery.c +1 −1
  1425. fs/nilfs2/segment.c +12 −7
  1426. fs/notify/fanotify/fanotify_user.c +1 −1
  1427. fs/ocfs2/cluster/quorum.c +1 −1
  1428. fs/pstore/zone.c +0 −1
  1429. fs/quota/quota.c +1 −1
  1430. fs/romfs/storage.c +1 −3
  1431. fs/seq_file.c +1 −1
  1432. fs/signalfd.c +1 −1
  1433. fs/squashfs/block.c +5 −1
  1434. fs/ubifs/lprops.c +2 −2
  1435. fs/udf/symlink.c +1 −1
  1436. fs/ufs/util.h +6 −6
  1437. fs/vboxsf/utils.c +1 −1
  1438. fs/xfs/libxfs/xfs_trans_inode.c +2 −2
  1439. include/drm/drm_modeset_lock.h +7 −2
  1440. include/linux/ceph/ceph_features.h +4 −4
  1441. include/linux/compat.h +3 −3
  1442. include/linux/cpufreq.h +2 −2
  1443. include/linux/cpuhotplug.h +1 −0
  1444. include/linux/cpuidle.h +7 −6
  1445. include/linux/dma-direct.h +0 −3
  1446. include/linux/dma-mapping.h +3 −2
  1447. include/linux/filter.h +1 −1
  1448. include/linux/fs.h +5 −2
  1449. include/linux/irqflags.h +39 −34
  1450. include/linux/jbd2.h +1 −1
  1451. include/linux/jhash.h +13 −13
  1452. include/linux/kernel.h +1 −1
  1453. include/linux/lockdep.h +13 −5
  1454. include/linux/mm.h +8 −3
  1455. include/linux/mmu_context.h +5 −0
  1456. include/linux/netfilter_ipv6.h +0 −18
  1457. include/linux/pgtable.h +2 −0
  1458. include/linux/phylink.h +2 −1
  1459. include/linux/sched.h +1 −1
  1460. include/linux/sched/user.h +3 −0
  1461. include/linux/signal.h +6 −6
  1462. include/linux/skbuff.h +6 −6
  1463. include/linux/soc/ti/ti_sci_protocol.h +13 −0
  1464. include/math-emu/op-common.h +5 −5
  1465. include/net/addrconf.h +2 −1
  1466. include/trace/events/ext4.h +75 −10
  1467. include/trace/events/mmflags.h +2 −0
  1468. include/trace/events/writeback.h +6 −8
  1469. include/uapi/linux/bpf.h +5 −5
  1470. include/xen/arm/page.h +5 −1
  1471. ipc/sem.c +2 −2
  1472. ipc/shm.c +2 −2
  1473. kernel/auditfilter.c +1 −1
  1474. kernel/bpf/bpf_iter.c +14 −1
  1475. kernel/bpf/cgroup.c +1 −1
  1476. kernel/bpf/cpumap.c +1 −1
  1477. kernel/bpf/stackmap.c +14 −10
  1478. kernel/bpf/syscall.c +1 −1
  1479. kernel/bpf/task_iter.c +4 −2
  1480. kernel/bpf/verifier.c +2 −2
  1481. kernel/capability.c +1 −1
  1482. kernel/compat.c +3 −3
  1483. kernel/debug/gdbstub.c +3 −3
  1484. kernel/debug/kdb/kdb_keyboard.c +2 −2
  1485. kernel/debug/kdb/kdb_support.c +3 −3
  1486. kernel/dma/direct.c +9 −4
  1487. kernel/dma/pool.c +79 −68
  1488. kernel/entry/common.c +2 −1
  1489. kernel/events/core.c +1 −1
  1490. kernel/events/uprobes.c +1 −1
  1491. kernel/irq/handle.c +1 −1
  1492. kernel/irq/manage.c +2 −2
  1493. kernel/irq/matrix.c +7 −0
  1494. kernel/kallsyms.c +2 −2
  1495. kernel/locking/lockdep.c +11 −7
  1496. kernel/power/hibernate.c +1 −1
  1497. kernel/power/qos.c +2 −2
  1498. kernel/relay.c +1 −0
  1499. kernel/sched/core.c +1 −1
  1500. kernel/sched/idle.c +11 −14
  1501. kernel/sched/topology.c +3 −3
  1502. kernel/signal.c +1 −1
  1503. kernel/sys.c +1 −1
  1504. kernel/time/hrtimer.c +1 −1
  1505. kernel/time/posix-timers.c +2 −2
  1506. kernel/time/tick-broadcast.c +1 −1
  1507. kernel/time/timer.c +1 −1
  1508. kernel/trace/blktrace.c +1 −1
  1509. kernel/trace/trace_events_filter.c +2 −2
  1510. kernel/watch_queue.c +8 −0
  1511. lib/Makefile +6 −1
  1512. lib/bootconfig.c +1 −1
  1513. lib/glob.c +1 −1
  1514. lib/vsprintf.c +4 −3
  1515. lib/xz/xz_dec_lzma2.c +2 −2
  1516. lib/xz/xz_dec_stream.c +8 −8
  1517. lib/zstd/decompress.c +5 −5
  1518. mm/hugetlb_cgroup.c +2 −2
  1519. mm/khugepaged.c +1 −1
  1520. mm/ksm.c +4 −0
  1521. mm/memory.c +3 −0
  1522. mm/page_alloc.c +6 −1
  1523. mm/rodata_test.c +1 −0
  1524. mm/vmalloc.c +2 −0
  1525. net/8021q/vlan_dev.c +1 −1
  1526. net/9p/trans_xen.c +1 −1
  1527. net/atm/common.c +2 −2
  1528. net/atm/lec.c +1 −1
  1529. net/atm/resources.c +4 −4
  1530. net/bpf/test_run.c +1 −1
  1531. net/bridge/netfilter/ebtables.c +4 −0
  1532. net/bridge/netfilter/nf_conntrack_bridge.c +6 −2
  1533. net/can/j1939/socket.c +15 −1
  1534. net/can/j1939/transport.c +94 −30
  1535. net/ceph/ceph_hash.c +10 −10
  1536. net/ceph/crush/mapper.c +1 −1
  1537. net/ceph/messenger.c +2 −2
  1538. net/ceph/mon_client.c +1 −1
  1539. net/ceph/osd_client.c +2 −2
  1540. net/core/dev.c +14 −12
  1541. net/core/dev_ioctl.c +3 −3
  1542. net/core/devlink.c +3 −3
  1543. net/core/drop_monitor.c +1 −1
  1544. net/core/filter.c +63 −14
  1545. net/core/pktgen.c +1 −1
  1546. net/core/skbuff.c +9 −5
  1547. net/core/skmsg.c +0 −1
  1548. net/core/sock.c +1 −1
  1549. net/dccp/ccids/ccid3.c +1 −1
  1550. net/dccp/feat.c +2 −1
  1551. net/dccp/input.c +5 −5
  1552. net/dccp/options.c +1 −1
  1553. net/dccp/output.c +4 −4
  1554. net/dccp/proto.c +4 −4
  1555. net/decnet/af_decnet.c +3 −3
  1556. net/decnet/dn_nsp_in.c +1 −1
  1557. net/decnet/dn_table.c +1 −1
  1558. net/decnet/sysctl_net_decnet.c +1 −1
  1559. net/dsa/slave.c +1 −1
  1560. net/ethtool/features.c +10 −9
  1561. net/ieee802154/6lowpan/reassembly.c +1 −1
  1562. net/ieee802154/6lowpan/rx.c +2 −2
  1563. net/ipv4/Kconfig +7 −7
  1564. net/ipv4/nexthop.c +4 −1
  1565. net/ipv6/addrconf.c +23 −37
  1566. net/ipv6/ip6_tunnel.c +9 −1
  1567. net/ipv6/netfilter.c +0 −3
  1568. net/iucv/af_iucv.c +5 −5
  1569. net/mpls/af_mpls.c +1 −1
  1570. net/mptcp/protocol.c +11 −6
  1571. net/ncsi/ncsi-manage.c +2 −2
  1572. net/netfilter/ipvs/ip_vs_proto_tcp.c +1 −1
  1573. net/netfilter/ipvs/ip_vs_proto_udp.c +1 −1
  1574. net/netfilter/nf_tables_api.c +4 −2
  1575. net/netfilter/nft_compat.c +14 −23
  1576. net/netfilter/nft_exthdr.c +2 −2
  1577. net/netlink/policy.c +4 −1
  1578. net/netrom/nr_in.c +1 −1
  1579. net/netrom/nr_route.c +4 −4
  1580. net/openvswitch/conntrack.c +2 −2
  1581. net/openvswitch/flow.c +1 −1
  1582. net/packet/af_packet.c +1 −1
  1583. net/phonet/pep.c +5 −5
  1584. net/qrtr/qrtr.c +11 −9
  1585. net/rds/send.c +1 −1
  1586. net/rose/rose_in.c +1 −1
  1587. net/rose/rose_route.c +2 −2
  1588. net/rxrpc/af_rxrpc.c +3 −3
  1589. net/rxrpc/call_accept.c +1 −1
  1590. net/rxrpc/conn_client.c +1 −1
  1591. net/rxrpc/input.c +3 −3
  1592. net/rxrpc/local_object.c +1 −1
  1593. net/rxrpc/peer_event.c +1 −1
  1594. net/rxrpc/recvmsg.c +1 −1
  1595. net/rxrpc/sendmsg.c +3 −3
  1596. net/sched/act_ct.c +1 −1
  1597. net/sched/sch_cake.c +1 −1
  1598. net/sctp/ipv6.c +1 −1
  1599. net/sctp/outqueue.c +3 −3
  1600. net/sctp/sm_make_chunk.c +1 −1
  1601. net/sctp/sm_sideeffect.c +1 −1
  1602. net/sctp/sm_statefuns.c +1 −1
  1603. net/sctp/stream.c +4 −2
  1604. net/smc/smc_close.c +1 −1
  1605. net/smc/smc_diag.c +9 −7
  1606. net/sunrpc/auth_gss/gss_krb5_wrap.c +1 −1
  1607. net/sunrpc/auth_gss/trace.c +0 −1
  1608. net/sunrpc/clnt.c +11 −11
  1609. net/sunrpc/xprt.c +1 −1
  1610. net/sunrpc/xprtrdma/verbs.c +1 −1
  1611. net/sunrpc/xprtsock.c +4 −4
  1612. net/tipc/Kconfig +1 −0
  1613. net/tipc/bearer.c +1 −1
  1614. net/tipc/crypto.c +2 −0
  1615. net/tipc/group.c +1 −1
  1616. net/tipc/link.c +1 −1
  1617. net/tipc/netlink_compat.c +11 −1
  1618. net/tipc/socket.c +2 −2
  1619. net/tipc/udp_media.c +3 −5
  1620. net/unix/af_unix.c +1 −1
  1621. net/wireless/chan.c +2 −2
  1622. net/wireless/mlme.c +1 −1
  1623. net/wireless/nl80211.c +10 −10
  1624. net/wireless/scan.c +1 −1
  1625. net/wireless/sme.c +2 −2
  1626. net/wireless/util.c +2 −2
  1627. net/wireless/wext-compat.c +2 −2
  1628. net/x25/x25_facilities.c +1 −1
  1629. net/x25/x25_in.c +1 −1
  1630. net/xfrm/xfrm_policy.c +1 −1
  1631. samples/bpf/hbm.c +1 −1
  1632. scripts/Makefile.extrawarn +1 −1
  1633. scripts/extract-cert.c +1 −1
  1634. scripts/genksyms/keywords.c +2 −2
  1635. scripts/kconfig/qconf.cc +77 −79
  1636. scripts/kconfig/qconf.h +3 −3
  1637. security/apparmor/domain.c +1 −1
  1638. security/apparmor/lib.c +2 −2
  1639. security/integrity/ima/ima_appraise.c +2 −2
  1640. security/integrity/ima/ima_policy.c +4 −4
  1641. security/integrity/ima/ima_template_lib.c +1 −1
  1642. security/keys/process_keys.c +3 −3
  1643. security/keys/request_key.c +4 −4
  1644. security/selinux/hooks.c +1 −7
  1645. security/selinux/ss/mls.c +1 −3
  1646. security/smack/smack_lsm.c +1 −1
  1647. security/tomoyo/common.c +9 −9
  1648. security/tomoyo/file.c +1 −1
  1649. sound/hda/hdac_bus.c +12 −0
  1650. sound/hda/hdac_controller.c +0 −11
  1651. sound/isa/sscape.c +3 −3
  1652. sound/pci/hda/patch_realtek.c +3 −0
  1653. sound/ppc/snd_ps3.c +2 −2
  1654. sound/soc/amd/acp3x-rt5682-max9836.c +1 −1
  1655. sound/soc/amd/renoir/acp3x-pdm-dma.c +9 −20
  1656. sound/soc/atmel/mchp-i2s-mcc.c +1 −1
  1657. sound/soc/codecs/jz4770.c +1 −1
  1658. sound/soc/codecs/msm8916-wcd-analog.c +2 −2
  1659. sound/soc/codecs/pcm186x.c +1 −1
  1660. sound/soc/codecs/wm8958-dsp2.c +4 −0
  1661. sound/soc/codecs/wm8962.c +1 −1
  1662. sound/soc/codecs/wm8994.c +44 −16
  1663. sound/soc/fsl/fsl-asoc-card.c +70 −84
  1664. sound/soc/fsl/fsl_ssi.c +1 −1
  1665. sound/soc/fsl/mpc5200_dma.c +0 −1
  1666. sound/soc/hisilicon/hi6210-i2s.c +2 −2
  1667. sound/soc/intel/atom/sst-mfld-platform-pcm.c +3 −2
  1668. sound/soc/intel/baytrail/sst-baytrail-pcm.c +1 −1
  1669. sound/soc/intel/boards/bytcht_es8316.c +1 −1
  1670. sound/soc/intel/boards/bytcr_rt5651.c +2 −2
  1671. sound/soc/intel/skylake/skl-pcm.c +1 −1
  1672. sound/soc/meson/axg-tdm-interface.c +5 −5
  1673. sound/soc/pxa/pxa-ssp.c +1 −1
  1674. sound/soc/qcom/qdsp6/q6afe-dai.c +105 −105
  1675. sound/soc/qcom/qdsp6/q6routing.c +16 −0
  1676. sound/soc/rockchip/rockchip_pdm.c +3 −3
  1677. sound/soc/samsung/i2s.c +1 −1
  1678. sound/soc/soc-component.c +1 −1
  1679. sound/soc/soc-core.c +1 −1
  1680. sound/soc/soc-topology.c +2 −2
  1681. sound/soc/sof/intel/hda-dai.c +2 −2
  1682. sound/soc/sof/pcm.c +2 −2
  1683. sound/soc/tegra/tegra186_dspk.c +2 −2
  1684. sound/soc/tegra/tegra210_admaif.c +2 −2
  1685. sound/soc/tegra/tegra210_ahub.c +2 −2
  1686. sound/soc/tegra/tegra210_dmic.c +2 −2
  1687. sound/soc/tegra/tegra210_i2s.c +2 −2
  1688. sound/soc/ti/davinci-i2s.c +1 −1
  1689. sound/soc/ti/n810.c +1 −1
  1690. sound/soc/ti/omap-dmic.c +2 −2
  1691. sound/soc/ti/omap-mcpdm.c +4 −4
  1692. sound/soc/ti/rx51.c +1 −1
  1693. sound/soc/zte/zx-i2s.c +2 −2
  1694. sound/soc/zte/zx-spdif.c +1 −1
  1695. sound/usb/mixer.c +7 −1
  1696. sound/usb/quirks-table.h +32 −2
  1697. tools/bpf/bpftool/btf_dumper.c +1 −1
  1698. tools/bpf/bpftool/gen.c +18 −4
  1699. tools/bpf/bpftool/link.c +2 −2
  1700. tools/bpf/bpftool/main.h +9 −1
  1701. tools/bpf/bpftool/pids.c +2 −0
  1702. tools/bpf/bpftool/prog.c +8 −8
  1703. tools/bpf/resolve_btfids/main.c +36 −0
  1704. tools/include/uapi/linux/bpf.h +5 −5
  1705. tools/lib/bpf/bpf_helpers.h +1 −1
  1706. tools/lib/bpf/btf.c +80 −3
  1707. tools/lib/bpf/btf.h +2 −0
  1708. tools/lib/bpf/btf_dump.c +37 −2
  1709. tools/lib/bpf/libbpf.c +22 −12
  1710. tools/lib/bpf/libbpf.map +2 −0
  1711. tools/testing/selftests/bpf/.gitignore +0 −1
  1712. tools/testing/selftests/bpf/Makefile +1 −1
  1713. tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c +4 −4
  1714. tools/testing/selftests/bpf/prog_tests/btf_dump.c +20 −7
  1715. tools/testing/selftests/bpf/prog_tests/core_extern.c +2 −2
  1716. tools/testing/selftests/bpf/prog_tests/core_reloc.c +10 −10
  1717. tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c +3 −3
  1718. tools/testing/selftests/bpf/prog_tests/flow_dissector.c +1 −1
  1719. tools/testing/selftests/bpf/prog_tests/global_data.c +3 −3
  1720. tools/testing/selftests/bpf/prog_tests/mmap.c +13 −6
  1721. tools/testing/selftests/bpf/prog_tests/prog_run_xattr.c +1 −1
  1722. tools/testing/selftests/bpf/prog_tests/sk_lookup.c +1 −0
  1723. tools/testing/selftests/bpf/prog_tests/skb_ctx.c +1 −1
  1724. tools/testing/selftests/bpf/prog_tests/test_global_funcs.c +1 −1
  1725. tools/testing/selftests/bpf/prog_tests/varlen.c +4 −4
  1726. tools/testing/selftests/bpf/progs/core_reloc_types.h +37 −32
  1727. tools/testing/selftests/bpf/progs/test_tcpbpf_kern.c +41 −0
  1728. tools/testing/selftests/bpf/progs/test_varlen.c +3 −3
  1729. tools/testing/selftests/bpf/test_btf.c +4 −4
  1730. tools/testing/selftests/bpf/test_progs.h +5 −0
  1731. tools/testing/selftests/kvm/x86_64/debug_regs.c +2 −2
  1732. tools/testing/selftests/net/icmp_redirect.sh +2 −0
  1733. tools/testing/selftests/netfilter/nft_flowtable.sh +43 −30
  1734. tools/testing/selftests/powerpc/mm/.gitignore +1 −0
  1735. tools/testing/selftests/powerpc/mm/Makefile +3 −1
  1736. tools/testing/selftests/powerpc/mm/prot_sao.c +43 −0
  1737. tools/usb/Build +2 −0
  1738. tools/usb/Makefile +45 −8
  1739. virt/kvm/kvm_main.c +2 −1
.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/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/pm/intel_pstate.rst+2−2
@@ -564,8 +564,8 @@ Energy-Performance Preference (EPP) knob (if supported) or its · 563 unmodified lines
564564 Energy-Performance Bias (EPB) knob. It is also possible to write a positive
565565 integer value between 0 to 255, if the EPP feature is present. If the EPP
566566 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.
567+supported. In this case, user can use the
568+"/sys/devices/system/cpu/cpu*/power/energy_perf_bias" interface.
569569
570570 [Note that tasks may by migrated from one CPU to another by the scheduler's
571571 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/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/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/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/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/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/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/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.)
MAINTAINERS+41−31
@@ -3205,6 +3205,7 @@ S: Maintained · 3204 unmodified lines
32053205 T: git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
32063206 F: block/
32073207 F: drivers/block/
3208+F: include/linux/blk*
32083209 F: kernel/trace/blktrace.c
32093210 F: lib/sbitmap.c
32103211
@@ -5050,7 +5051,7 @@ F: include/linux/dm-*.h · 1839 unmodified lines
50505051 F: include/uapi/linux/dm-*.h
50515052
50525053 DEVLINK
5053−M: Jiri Pirko <jiri@mellanox.com>
5054+M: Jiri Pirko <jiri@nvidia.com>
50545055 L: netdev@vger.kernel.org
50555056 S: Supported
50565057 F: Documentation/networking/devlink
@@ -6081,7 +6082,7 @@ F: include/linux/dynamic_debug.h · 1024 unmodified lines
60816082 F: lib/dynamic_debug.c
60826083
60836084 DYNAMIC INTERRUPT MODERATION
6084−M: Tal Gilboa <talgi@mellanox.com>
6085+M: Tal Gilboa <talgi@nvidia.com>
60856086 S: Maintained
60866087 F: Documentation/networking/net_dim.rst
60876088 F: include/linux/dim.h
@@ -6161,7 +6162,7 @@ F: Documentation/devicetree/bindings/edac/aspeed-sdram-edac.txt · 73 unmodified lines
61616162 F: drivers/edac/aspeed_edac.c
61626163
61636164 EDAC-BLUEFIELD
6164−M: Shravan Kumar Ramani <sramani@mellanox.com>
6165+M: Shravan Kumar Ramani <sramani@nvidia.com>
61656166 S: Supported
61666167 F: drivers/edac/bluefield_edac.c
61676168
@@ -6483,8 +6484,8 @@ S: Odd Fixes · 315 unmodified lines
64836484 F: drivers/net/ethernet/agere/
64846485
64856486 ETHERNET BRIDGE
6486−M: Roopa Prabhu <roopa@cumulusnetworks.com>
6487−M: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
6487+M: Roopa Prabhu <roopa@nvidia.com>
6488+M: Nikolay Aleksandrov <nikolay@nvidia.com>
64886489 L: bridge@lists.linux-foundation.org (moderated for non-subscribers)
64896490 L: netdev@vger.kernel.org
64906491 S: Maintained
@@ -6599,7 +6600,7 @@ F: drivers/iommu/exynos-iommu.c · 108 unmodified lines
65996600
66006601 EZchip NPS platform support
66016602 M: Vineet Gupta <vgupta@synopsys.com>
6602−M: Ofer Levi <oferle@mellanox.com>
6603+M: Ofer Levi <oferle@nvidia.com>
66036604 S: Supported
66046605 F: arch/arc/boot/dts/eznps.dts
66056606 F: arch/arc/plat-eznps
@@ -8563,7 +8564,7 @@ F: drivers/iio/pressure/dps310.c · 1957 unmodified lines
85638564
85648565 INFINIBAND SUBSYSTEM
85658566 M: Doug Ledford <dledford@redhat.com>
8566−M: Jason Gunthorpe <jgg@mellanox.com>
8567+M: Jason Gunthorpe <jgg@nvidia.com>
85678568 L: linux-rdma@vger.kernel.org
85688569 S: Supported
85698570 W: https://github.com/linux-rdma/rdma-core
@@ -9226,7 +9227,7 @@ F: drivers/firmware/iscsi_ibft* · 656 unmodified lines
92269227
92279228 ISCSI EXTENSIONS FOR RDMA (ISER) INITIATOR
92289229 M: Sagi Grimberg <sagi@grimberg.me>
9229−M: Max Gurtovoy <maxg@mellanox.com>
9230+M: Max Gurtovoy <maxg@nvidia.com>
92309231 L: linux-rdma@vger.kernel.org
92319232 S: Supported
92329233 W: http://www.openfabrics.org
@@ -11072,7 +11073,7 @@ F: Documentation/devicetree/bindings/input/touchscreen/melfas_mip4.txt · 1839 unmodified lines
1107211073 F: drivers/input/touchscreen/melfas_mip4.c
1107311074
1107411075 MELLANOX ETHERNET DRIVER (mlx4_en)
11075−M: Tariq Toukan <tariqt@mellanox.com>
11076+M: Tariq Toukan <tariqt@nvidia.com>
1107611077 L: netdev@vger.kernel.org
1107711078 S: Supported
1107811079 W: http://www.mellanox.com
@@ -11080,7 +11081,7 @@ Q: http://patchwork.ozlabs.org/project/netdev/list/ · 1 unmodified line
1108011081 F: drivers/net/ethernet/mellanox/mlx4/en_*
1108111082
1108211083 MELLANOX ETHERNET DRIVER (mlx5e)
11083−M: Saeed Mahameed <saeedm@mellanox.com>
11084+M: Saeed Mahameed <saeedm@nvidia.com>
1108411085 L: netdev@vger.kernel.org
1108511086 S: Supported
1108611087 W: http://www.mellanox.com
@@ -11088,7 +11089,7 @@ Q: http://patchwork.ozlabs.org/project/netdev/list/ · 1 unmodified line
1108811089 F: drivers/net/ethernet/mellanox/mlx5/core/en_*
1108911090
1109011091 MELLANOX ETHERNET INNOVA DRIVERS
11091−R: Boris Pismenny <borisp@mellanox.com>
11092+R: Boris Pismenny <borisp@nvidia.com>
1109211093 L: netdev@vger.kernel.org
1109311094 S: Supported
1109411095 W: http://www.mellanox.com
@@ -11099,8 +11100,8 @@ F: drivers/net/ethernet/mellanox/mlx5/core/fpga/* · 4 unmodified lines
1109911100 F: include/linux/mlx5/mlx5_ifc_fpga.h
1110011101
1110111102 MELLANOX ETHERNET SWITCH DRIVERS
11102−M: Jiri Pirko <jiri@mellanox.com>
11103−M: Ido Schimmel <idosch@mellanox.com>
11103+M: Jiri Pirko <jiri@nvidia.com>
11104+M: Ido Schimmel <idosch@nvidia.com>
1110411105 L: netdev@vger.kernel.org
1110511106 S: Supported
1110611107 W: http://www.mellanox.com
@@ -11109,7 +11110,7 @@ F: drivers/net/ethernet/mellanox/mlxsw/ · 2 unmodified lines
1110911110 F: tools/testing/selftests/drivers/net/mlxsw/
1111011111
1111111112 MELLANOX FIRMWARE FLASH LIBRARY (mlxfw)
11112−M: mlxsw@mellanox.com
11113+M: mlxsw@nvidia.com
1111311114 L: netdev@vger.kernel.org
1111411115 S: Supported
1111511116 W: http://www.mellanox.com
@@ -11119,7 +11120,7 @@ F: drivers/net/ethernet/mellanox/mlxfw/ · 3 unmodified lines
1111911120 MELLANOX HARDWARE PLATFORM SUPPORT
1112011121 M: Andy Shevchenko <andy@infradead.org>
1112111122 M: Darren Hart <dvhart@infradead.org>
11122−M: Vadim Pasternak <vadimp@mellanox.com>
11123+M: Vadim Pasternak <vadimp@nvidia.com>
1112311124 L: platform-driver-x86@vger.kernel.org
1112411125 S: Supported
1112511126 F: Documentation/ABI/testing/sysfs-platform-mellanox-bootctl
@@ -11127,7 +11128,7 @@ F: drivers/platform/mellanox/ · 1 unmodified line
1112711128 F: include/linux/platform_data/mlxreg.h
1112811129
1112911130 MELLANOX MLX4 core VPI driver
11130−M: Tariq Toukan <tariqt@mellanox.com>
11131+M: Tariq Toukan <tariqt@nvidia.com>
1113111132 L: netdev@vger.kernel.org
1113211133 L: linux-rdma@vger.kernel.org
1113311134 S: Supported
@@ -11137,7 +11138,7 @@ F: drivers/net/ethernet/mellanox/mlx4/ · 3 unmodified lines
1113711138 F: include/linux/mlx4/
1113811139
1113911140 MELLANOX MLX4 IB driver
11140−M: Yishai Hadas <yishaih@mellanox.com>
11141+M: Yishai Hadas <yishaih@nvidia.com>
1114111142 L: linux-rdma@vger.kernel.org
1114211143 S: Supported
1114311144 W: http://www.mellanox.com
@@ -11147,8 +11148,8 @@ F: include/linux/mlx4/ · 3 unmodified lines
1114711148 F: include/uapi/rdma/mlx4-abi.h
1114811149
1114911150 MELLANOX MLX5 core VPI driver
11150−M: Saeed Mahameed <saeedm@mellanox.com>
11151−M: Leon Romanovsky <leonro@mellanox.com>
11151+M: Saeed Mahameed <saeedm@nvidia.com>
11152+M: Leon Romanovsky <leonro@nvidia.com>
1115211153 L: netdev@vger.kernel.org
1115311154 L: linux-rdma@vger.kernel.org
1115411155 S: Supported
@@ -11159,7 +11160,7 @@ F: drivers/net/ethernet/mellanox/mlx5/core/ · 4 unmodified lines
1115911160 F: include/linux/mlx5/
1116011161
1116111162 MELLANOX MLX5 IB driver
11162−M: Leon Romanovsky <leonro@mellanox.com>
11163+M: Leon Romanovsky <leonro@nvidia.com>
1116311164 L: linux-rdma@vger.kernel.org
1116411165 S: Supported
1116511166 W: http://www.mellanox.com
@@ -11169,8 +11170,8 @@ F: include/linux/mlx5/ · 3 unmodified lines
1116911170 F: include/uapi/rdma/mlx5-abi.h
1117011171
1117111172 MELLANOX MLXCPLD I2C AND MUX DRIVER
11172−M: Vadim Pasternak <vadimp@mellanox.com>
11173−M: Michael Shych <michaelsh@mellanox.com>
11173+M: Vadim Pasternak <vadimp@nvidia.com>
11174+M: Michael Shych <michaelsh@nvidia.com>
1117411175 L: linux-i2c@vger.kernel.org
1117511176 S: Supported
1117611177 F: Documentation/i2c/busses/i2c-mlxcpld.rst
@@ -11178,7 +11179,7 @@ F: drivers/i2c/busses/i2c-mlxcpld.c · 1 unmodified line
1117811179 F: drivers/i2c/muxes/i2c-mux-mlxcpld.c
1117911180
1118011181 MELLANOX MLXCPLD LED DRIVER
11181−M: Vadim Pasternak <vadimp@mellanox.com>
11182+M: Vadim Pasternak <vadimp@nvidia.com>
1118211183 L: linux-leds@vger.kernel.org
1118311184 S: Supported
1118411185 F: Documentation/leds/leds-mlxcpld.rst
@@ -11186,7 +11187,7 @@ F: drivers/leds/leds-mlxcpld.c · 1 unmodified line
1118611187 F: drivers/leds/leds-mlxreg.c
1118711188
1118811189 MELLANOX PLATFORM DRIVER
11189−M: Vadim Pasternak <vadimp@mellanox.com>
11190+M: Vadim Pasternak <vadimp@nvidia.com>
1119011191 L: platform-driver-x86@vger.kernel.org
1119111192 S: Supported
1119211193 F: drivers/platform/x86/mlx-platform.c
@@ -12167,8 +12168,8 @@ F: net/ipv6/syncookies.c · 974 unmodified lines
1216712168 F: net/ipv6/tcp*.c
1216812169
1216912170 NETWORKING [TLS]
12170−M: Boris Pismenny <borisp@mellanox.com>
12171−M: Aviad Yehezkel <aviadye@mellanox.com>
12171+M: Boris Pismenny <borisp@nvidia.com>
12172+M: Aviad Yehezkel <aviadye@nvidia.com>
1217212173 M: John Fastabend <john.fastabend@gmail.com>
1217312174 M: Daniel Borkmann <daniel@iogearbox.net>
1217412175 M: Jakub Kicinski <kuba@kernel.org>
@@ -12468,7 +12469,7 @@ S: Supported · 293 unmodified lines
1246812469 F: drivers/nfc/nxp-nci
1246912470
1247012471 OBJAGG
12471−M: Jiri Pirko <jiri@mellanox.com>
12472+M: Jiri Pirko <jiri@nvidia.com>
1247212473 L: netdev@vger.kernel.org
1247312474 S: Supported
1247412475 F: include/linux/objagg.h
@@ -13110,7 +13111,7 @@ F: drivers/video/logo/logo_parisc* · 635 unmodified lines
1311013111 F: include/linux/hp_sdc.h
1311113112
1311213113 PARMAN
13113−M: Jiri Pirko <jiri@mellanox.com>
13114+M: Jiri Pirko <jiri@nvidia.com>
1311413115 L: netdev@vger.kernel.org
1311513116 S: Supported
1311613117 F: include/linux/parman.h
@@ -16034,7 +16035,7 @@ F: drivers/infiniband/sw/siw/ · 2917 unmodified lines
1603416035 F: include/uapi/rdma/siw-abi.h
1603516036
1603616037 SOFT-ROCE DRIVER (rxe)
16037−M: Zhu Yanjun <yanjunz@mellanox.com>
16038+M: Zhu Yanjun <yanjunz@nvidia.com>
1603816039 L: linux-rdma@vger.kernel.org
1603916040 S: Supported
1604016041 F: drivers/infiniband/sw/rxe/
@@ -17116,8 +17117,8 @@ S: Maintained · 1075 unmodified lines
1711617117 F: Documentation/devicetree/bindings/arm/keystone/ti,k3-sci-common.yaml
1711717118 F: Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
1711817119 F: Documentation/devicetree/bindings/clock/ti,sci-clk.txt
17119−F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.txt
17120−F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt
17120+F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml
17121+F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml
1712117122 F: Documentation/devicetree/bindings/reset/ti,sci-reset.txt
1712217123 F: Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
1712317124 F: drivers/clk/keystone/sci-clk.c
@@ -18874,6 +18875,15 @@ S: Maintained · 1750 unmodified lines
1887418875 T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/core
1887518876 F: arch/x86/platform
1887618877
18878+X86 PLATFORM UV HPE SUPERDOME FLEX
18879+M: Steve Wahl <steve.wahl@hpe.com>
18880+R: Dimitri Sivanich <dimitri.sivanich@hpe.com>
18881+R: Russ Anderson <russ.anderson@hpe.com>
18882+S: Supported
18883+F: arch/x86/include/asm/uv/
18884+F: arch/x86/kernel/apic/x2apic_uv_x.c
18885+F: arch/x86/platform/uv/
18886+
1887718887 X86 VDSO
1887818888 M: Andy Lutomirski <luto@kernel.org>
1887918889 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 = -rc3
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/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/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/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/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/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.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/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/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/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/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/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/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/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/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/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/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/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/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/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/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-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-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)
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_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+8−8
@@ -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;
@@ -4694,7 +4694,7 @@ void ata_qc_complete(struct ata_queued_cmd *qc) · 1529 unmodified lines
46944694 qc->tf.feature != SETFEATURES_RA_ON &&
46954695 qc->tf.feature != SETFEATURES_RA_OFF)
46964696 break;
4697− /* fall through */
4697+ fallthrough;
46984698 case ATA_CMD_INIT_DEV_PARAMS: /* CHS translation changed */
46994699 case ATA_CMD_SET_MULTI: /* multi_count changed */
47004700 /* 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+2−2
@@ -4162,7 +4162,7 @@ void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd) · 4161 unmodified lines
41624162 ata_scsi_rbuf_fill(&args, ata_scsiop_inq_b6);
41634163 break;
41644164 }
4165− /* Fallthrough */
4165+ fallthrough;
41664166 default:
41674167 ata_scsi_set_invalid_field(dev, cmd, 2, 0xff);
41684168 break;
@@ -4198,7 +4198,7 @@ void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd) · 29 unmodified lines
41984198 * turning this into a no-op.
41994199 */
42004200 case SYNCHRONIZE_CACHE:
4201− /* fall through */
4201+ fallthrough;
42024202
42034203 /* no-op's, complete with success */
42044204 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+1−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;
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/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/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/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/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/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/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/pl330.c+3−7
@@ -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,
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/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+6−3
@@ -2204,14 +2204,17 @@ static const struct throttling_logging_label { · 2203 unmodified lines
22042204 };
22052205 static void arcturus_log_thermal_throttling_event(struct smu_context *smu)
22062206 {
2207+ int ret;
22072208 int throttler_idx, throtting_events = 0, buf_idx = 0;
22082209 struct amdgpu_device *adev = smu->adev;
22092210 uint32_t throttler_status;
22102211 char log_buf[256];
22112212
2212− arcturus_get_smu_metrics_data(smu,
2213− METRICS_THROTTLER_STATUS,
2214− &throttler_status);
2213+ ret = arcturus_get_smu_metrics_data(smu,
2214+ METRICS_THROTTLER_STATUS,
2215+ &throttler_status);
2216+ if (ret)
2217+ return;
22152218
22162219 memset(log_buf, 0, sizeof(log_buf));
22172220 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/vega10_thermal.c+12−10
@@ -363,17 +363,19 @@ 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+ if (high > tdp_table->usSoftwareShutdownTemp)
378+ high = tdp_table->usSoftwareShutdownTemp;
377379
378380 if (low > high)
379381 return -EINVAL;
@@ -382,8 +384,8 @@ static int vega10_thermal_set_temperature_range(struct pp_hwmgr *hwmgr, · 2 unmodified lines
382384
383385 val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, MAX_IH_CREDIT, 5);
384386 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));
387+ val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, high);
388+ val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, low);
387389 val &= (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK) &
388390 (~THM_THERMAL_INT_CTRL__THERM_INTH_MASK_MASK) &
389391 (~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/sienna_cichlid_ppt.c+9−2
@@ -95,6 +95,7 @@ static struct cmn2asic_msg_mapping sienna_cichlid_message_map[SMU_MSG_MAX_COUNT] · 94 unmodified lines
9595 MSG_MAP(TransferTableSmu2Dram, PPSMC_MSG_TransferTableSmu2Dram, 0),
9696 MSG_MAP(TransferTableDram2Smu, PPSMC_MSG_TransferTableDram2Smu, 0),
9797 MSG_MAP(UseDefaultPPTable, PPSMC_MSG_UseDefaultPPTable, 0),
98+ MSG_MAP(RunDcBtc, PPSMC_MSG_RunDcBtc, 0),
9899 MSG_MAP(EnterBaco, PPSMC_MSG_EnterBaco, 0),
99100 MSG_MAP(SetSoftMinByFreq, PPSMC_MSG_SetSoftMinByFreq, 0),
100101 MSG_MAP(SetSoftMaxByFreq, PPSMC_MSG_SetSoftMaxByFreq, 0),
@@ -775,7 +776,7 @@ static int sienna_cichlid_dpm_set_vcn_enable(struct smu_context *smu, bool enabl · 674 unmodified lines
775776 ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_PowerUpVcn, 0, NULL);
776777 if (ret)
777778 return ret;
778− if (adev->asic_type == CHIP_SIENNA_CICHLID) {
779+ if (adev->vcn.num_vcn_inst > 1) {
779780 ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_PowerUpVcn,
780781 0x10000, NULL);
781782 if (ret)
@@ -787,7 +788,7 @@ static int sienna_cichlid_dpm_set_vcn_enable(struct smu_context *smu, bool enabl · 5 unmodified lines
787788 ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_PowerDownVcn, 0, NULL);
788789 if (ret)
789790 return ret;
790− if (adev->asic_type == CHIP_SIENNA_CICHLID) {
791+ if (adev->vcn.num_vcn_inst > 1) {
791792 ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_PowerDownVcn,
792793 0x10000, NULL);
793794 if (ret)
@@ -1732,6 +1733,11 @@ static int sienna_cichlid_get_dpm_ultimate_freq(struct smu_context *smu, · 938 unmodified lines
17321733 return ret;
17331734 }
17341735
1736+static int sienna_cichlid_run_btc(struct smu_context *smu)
1737+{
1738+ return smu_cmn_send_smc_msg(smu, SMU_MSG_RunDcBtc, NULL);
1739+}
1740+
17351741 static bool sienna_cichlid_is_baco_supported(struct smu_context *smu)
17361742 {
17371743 struct amdgpu_device *adev = smu->adev;
@@ -2719,6 +2725,7 @@ static const struct pptable_funcs sienna_cichlid_ppt_funcs = { · 981 unmodified lines
27192725 .mode1_reset = smu_v11_0_mode1_reset,
27202726 .get_dpm_ultimate_freq = sienna_cichlid_get_dpm_ultimate_freq,
27212727 .set_soft_freq_limited_range = smu_v11_0_set_soft_freq_limited_range,
2728+ .run_btc = sienna_cichlid_run_btc,
27222729 .get_pp_feature_mask = smu_cmn_get_pp_feature_mask,
27232730 .set_pp_feature_mask = smu_cmn_set_pp_feature_mask,
27242731 };
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+3−3
@@ -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;
@@ -320,7 +320,7 @@ void intel_combo_phy_power_up_lanes(struct drm_i915_private *dev_priv, · 261 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_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/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/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_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/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-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-ids.h+3−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
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+0−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;
drivers/hid/hid-quirks.c+3−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 },
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/init.c+1−1
@@ -2258,7 +2258,7 @@ static void iommu_enable_ga(struct amd_iommu *iommu) · 2257 unmodified lines
22582258 switch (amd_iommu_guest_ir) {
22592259 case AMD_IOMMU_GUEST_IR_VAPIC:
22602260 iommu_feature_enable(iommu, CONTROL_GAM_EN);
2261− /* Fall through */
2261+ fallthrough;
22622262 case AMD_IOMMU_GUEST_IR_LEGACY_GA:
22632263 iommu_feature_enable(iommu, CONTROL_GA_EN);
22642264 iommu->irte_ops = &irte_128_ops;
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+0−1
@@ -5070,7 +5070,6 @@ static struct iommu_domain *intel_iommu_domain_alloc(unsigned type) · 5069 unmodified lines
50705070
50715071 switch (type) {
50725072 case IOMMU_DOMAIN_DMA:
5073− /* fallthrough */
50745073 case IOMMU_DOMAIN_UNMANAGED:
50755074 dmar_domain = alloc_domain(0);
50765075 if (!dmar_domain) {
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-crypt.c+1−1
@@ -1552,7 +1552,7 @@ static blk_status_t crypt_convert(struct crypt_config *cc, · 1551 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-mpath.c+1−1
@@ -1554,7 +1554,7 @@ static void pg_init_done(void *data, int errors) · 1553 unmodified lines
15541554 case SCSI_DH_RETRY:
15551555 /* Wait before retrying. */
15561556 delay_retry = true;
1557− /* fall through */
1557+ fallthrough;
15581558 case SCSI_DH_IMM_RETRY:
15591559 case SCSI_DH_RES_TEMP_UNAVAIL:
15601560 if (pg_init_limit_reached(m, pgpath))
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/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:
1130611315 case DRX_STANDARD_ITU_C:
1130711316 ext_attr->qam_pga_cfg = gain * 13 + 140;
1130811317 break;
drivers/media/dvb-frontends/drxd_hard.c+6−6
@@ -1512,14 +1512,14 @@ static int SetDeviceTypeId(struct drxd_state *state) · 1511 unmodified lines
15121512 switch (deviceId) {
15131513 case 4:
15141514 state->diversity = 1;
1515− /* fall through */
1515+ fallthrough;
15161516 case 3:
15171517 case 7:
15181518 state->PGA = 1;
15191519 break;
15201520 case 6:
15211521 state->diversity = 1;
1522− /* fall through */
1522+ fallthrough;
15231523 case 5:
15241524 case 8:
15251525 break;
@@ -1966,7 +1966,7 @@ static int DRX_Start(struct drxd_state *state, s32 off) · 440 unmodified lines
19661966 switch (p->transmission_mode) {
19671967 default: /* Not set, detect it automatically */
19681968 operationMode |= SC_RA_RAM_OP_AUTO_MODE__M;
1969− /* fall through - try first guess DRX_FFTMODE_8K */
1969+ fallthrough; /* try first guess DRX_FFTMODE_8K */
19701970 case TRANSMISSION_MODE_8K:
19711971 transmissionParams |= SC_RA_RAM_OP_PARAM_MODE_8K;
19721972 if (state->type_A) {
@@ -2139,7 +2139,7 @@ static int DRX_Start(struct drxd_state *state, s32 off) · 166 unmodified lines
21392139 switch (p->modulation) {
21402140 default:
21412141 operationMode |= SC_RA_RAM_OP_AUTO_CONST__M;
2142− /* fall through - try first guess DRX_CONSTELLATION_QAM64 */
2142+ fallthrough; /* try first guess DRX_CONSTELLATION_QAM64 */
21432143 case QAM_64:
21442144 transmissionParams |= SC_RA_RAM_OP_PARAM_CONST_QAM64;
21452145 if (state->type_A) {
@@ -2266,7 +2266,7 @@ static int DRX_Start(struct drxd_state *state, s32 off) · 120 unmodified lines
22662266 break;
22672267 default:
22682268 operationMode |= SC_RA_RAM_OP_AUTO_RATE__M;
2269− /* fall through */
2269+ fallthrough;
22702270 case FEC_2_3:
22712271 transmissionParams |= SC_RA_RAM_OP_PARAM_RATE_2_3;
22722272 if (state->type_A)
@@ -2301,7 +2301,7 @@ static int DRX_Start(struct drxd_state *state, s32 off) · 28 unmodified lines
23012301 switch (p->bandwidth_hz) {
23022302 case 0:
23032303 p->bandwidth_hz = 8000000;
2304− /* fall through */
2304+ fallthrough;
23052305 case 8000000:
23062306 /* (64/7)*(8/8)*1000000 */
23072307 bandwidth = DRXD_BANDWIDTH_8MHZ_IN_HZ;
drivers/media/dvb-frontends/drxk_hard.c+12−12
@@ -1756,7 +1756,7 @@ static int setoperation_mode(struct drxk_state *state, · 1755 unmodified lines
17561756 goto error;
17571757 state->m_operation_mode = OM_NONE;
17581758 break;
1759− case OM_QAM_ITU_A: /* fallthrough */
1759+ case OM_QAM_ITU_A:
17601760 case OM_QAM_ITU_C:
17611761 status = mpegts_stop(state);
17621762 if (status < 0)
@@ -1783,7 +1783,7 @@ static int setoperation_mode(struct drxk_state *state, · 20 unmodified lines
17831783 if (status < 0)
17841784 goto error;
17851785 break;
1786− case OM_QAM_ITU_A: /* fallthrough */
1786+ case OM_QAM_ITU_A:
17871787 case OM_QAM_ITU_C:
17881788 dprintk(1, ": DVB-C Annex %c\n",
17891789 (state->m_operation_mode == OM_QAM_ITU_A) ? 'A' : 'C');
@@ -2012,7 +2012,7 @@ static int mpegts_dto_setup(struct drxk_state *state, · 222 unmodified lines
20122012 fec_oc_rcn_ctl_rate = 0xC00000;
20132013 static_clk = state->m_dvbt_static_clk;
20142014 break;
2015− case OM_QAM_ITU_A: /* fallthrough */
2015+ case OM_QAM_ITU_A:
20162016 case OM_QAM_ITU_C:
20172017 fec_oc_tmd_mode = 0x0004;
20182018 fec_oc_rcn_ctl_rate = 0xD2B4EE; /* good for >63 Mb/s */
@@ -3249,11 +3249,11 @@ static int dvbt_sc_command(struct drxk_state *state, · 1230 unmodified lines
32493249 case OFDM_SC_RA_RAM_CMD_SET_PREF_PARAM:
32503250 case OFDM_SC_RA_RAM_CMD_PROGRAM_PARAM:
32513251 status |= write16(state, OFDM_SC_RA_RAM_PARAM1__A, param1);
3252− /* fall through - All commands using 1 parameters */
3252+ fallthrough; /* All commands using 1 parameters */
32533253 case OFDM_SC_RA_RAM_CMD_SET_ECHO_TIMING:
32543254 case OFDM_SC_RA_RAM_CMD_USER_IO:
32553255 status |= write16(state, OFDM_SC_RA_RAM_PARAM0__A, param0);
3256− /* fall through - All commands using 0 parameters */
3256+ fallthrough; /* All commands using 0 parameters */
32573257 case OFDM_SC_RA_RAM_CMD_GET_OP_PARAM:
32583258 case OFDM_SC_RA_RAM_CMD_NULL:
32593259 /* Write command */
@@ -3761,7 +3761,7 @@ static int set_dvbt(struct drxk_state *state, u16 intermediate_freqk_hz, · 501 unmodified lines
37613761 case TRANSMISSION_MODE_AUTO:
37623762 default:
37633763 operation_mode |= OFDM_SC_RA_RAM_OP_AUTO_MODE__M;
3764− /* fall through - try first guess DRX_FFTMODE_8K */
3764+ fallthrough; /* try first guess DRX_FFTMODE_8K */
37653765 case TRANSMISSION_MODE_8K:
37663766 transmission_params |= OFDM_SC_RA_RAM_OP_PARAM_MODE_8K;
37673767 break;
@@ -3775,7 +3775,7 @@ static int set_dvbt(struct drxk_state *state, u16 intermediate_freqk_hz, · 7 unmodified lines
37753775 default:
37763776 case GUARD_INTERVAL_AUTO:
37773777 operation_mode |= OFDM_SC_RA_RAM_OP_AUTO_GUARD__M;
3778− /* fall through - try first guess DRX_GUARD_1DIV4 */
3778+ fallthrough; /* try first guess DRX_GUARD_1DIV4 */
37793779 case GUARD_INTERVAL_1_4:
37803780 transmission_params |= OFDM_SC_RA_RAM_OP_PARAM_GUARD_4;
37813781 break;
@@ -3798,7 +3798,7 @@ static int set_dvbt(struct drxk_state *state, u16 intermediate_freqk_hz, · 16 unmodified lines
37983798 operation_mode |= OFDM_SC_RA_RAM_OP_AUTO_HIER__M;
37993799 /* try first guess SC_RA_RAM_OP_PARAM_HIER_NO */
38003800 /* transmission_params |= OFDM_SC_RA_RAM_OP_PARAM_HIER_NO; */
3801− /* fall through */
3801+ fallthrough;
38023802 case HIERARCHY_1:
38033803 transmission_params |= OFDM_SC_RA_RAM_OP_PARAM_HIER_A1;
38043804 break;
@@ -3816,7 +3816,7 @@ static int set_dvbt(struct drxk_state *state, u16 intermediate_freqk_hz, · 11 unmodified lines
38163816 case QAM_AUTO:
38173817 default:
38183818 operation_mode |= OFDM_SC_RA_RAM_OP_AUTO_CONST__M;
3819− /* fall through - try first guess DRX_CONSTELLATION_QAM64 */
3819+ fallthrough; /* try first guess DRX_CONSTELLATION_QAM64 */
38203820 case QAM_64:
38213821 transmission_params |= OFDM_SC_RA_RAM_OP_PARAM_CONST_QAM64;
38223822 break;
@@ -3841,7 +3841,7 @@ static int set_dvbt(struct drxk_state *state, u16 intermediate_freqk_hz, · 18 unmodified lines
38413841 WR16(dev_addr, OFDM_EC_SB_PRIOR__A,
38423842 OFDM_EC_SB_PRIOR_HI));
38433843 break;
3844− case DRX_PRIORITY_UNKNOWN: /* fall through */
3844+ case DRX_PRIORITY_UNKNOWN:
38453845 default:
38463846 status = -EINVAL;
38473847 goto error;
@@ -3859,7 +3859,7 @@ static int set_dvbt(struct drxk_state *state, u16 intermediate_freqk_hz, · 11 unmodified lines
38593859 case FEC_AUTO:
38603860 default:
38613861 operation_mode |= OFDM_SC_RA_RAM_OP_AUTO_RATE__M;
3862− /* fall through - try first guess DRX_CODERATE_2DIV3 */
3862+ fallthrough; /* try first guess DRX_CODERATE_2DIV3 */
38633863 case FEC_2_3:
38643864 transmission_params |= OFDM_SC_RA_RAM_OP_PARAM_RATE_2_3;
38653865 break;
@@ -3893,7 +3893,7 @@ static int set_dvbt(struct drxk_state *state, u16 intermediate_freqk_hz, · 27 unmodified lines
38933893 switch (state->props.bandwidth_hz) {
38943894 case 0:
38953895 state->props.bandwidth_hz = 8000000;
3896− /* fall through */
3896+ fallthrough;
38973897 case 8000000:
38983898 bandwidth = DRXK_BANDWIDTH_8MHZ_IN_HZ;
38993899 status = write16(state, OFDM_SC_RA_RAM_SRMM_FIX_FACT_8K__A,
drivers/media/dvb-frontends/lgdt3306a.c+1−1
@@ -768,7 +768,7 @@ static int lgdt3306a_set_if(struct lgdt3306a_state *state, · 767 unmodified lines
768768 default:
769769 pr_warn("IF=%d KHz is not supported, 3250 assumed\n",
770770 if_freq_khz);
771− /* fallthrough */
771+ fallthrough;
772772 case 3250: /* 3.25Mhz */
773773 nco1 = 0x34;
774774 nco2 = 0x00;
drivers/media/dvb-frontends/mt352.c+1−1
@@ -201,7 +201,7 @@ static int mt352_set_parameters(struct dvb_frontend *fe) · 200 unmodified lines
201201 if (op->hierarchy == HIERARCHY_AUTO ||
202202 op->hierarchy == HIERARCHY_NONE)
203203 break;
204− /* fall through */
204+ fallthrough;
205205 default:
206206 return -EINVAL;
207207 }
drivers/media/dvb-frontends/mxl5xx.c+1−1
@@ -739,7 +739,7 @@ static int get_frontend(struct dvb_frontend *fe, · 738 unmodified lines
739739 default:
740740 break;
741741 }
742− /* Fall through */
742+ fallthrough;
743743 case SYS_DVBS:
744744 switch ((enum MXL_HYDRA_MODULATION_E)
745745 reg_data[DMD_MODULATION_SCHEME_ADDR]) {
drivers/media/dvb-frontends/or51132.c+1−1
@@ -482,7 +482,7 @@ start: · 481 unmodified lines
482482 switch (reg&0xff) {
483483 case 0x06:
484484 if (reg & 0x1000) usK = 3 << 24;
485− /* fall through */
485+ fallthrough;
486486 case 0x43: /* QAM64 */
487487 c = 150204167;
488488 break;
drivers/media/dvb-frontends/s5h1411.c+1−1
@@ -398,7 +398,7 @@ static int s5h1411_set_if_freq(struct dvb_frontend *fe, int KHz) · 397 unmodified lines
398398 default:
399399 dprintk("%s(%d KHz) Invalid, defaulting to 5380\n",
400400 __func__, KHz);
401− /* fall through */
401+ fallthrough;
402402 case 5380:
403403 case 44000:
404404 s5h1411_writereg(state, S5H1411_I2C_TOP_ADDR, 0x38, 0x1be4);
drivers/media/dvb-frontends/zl10353.c+2−2
@@ -201,7 +201,7 @@ static int zl10353_set_parameters(struct dvb_frontend *fe) · 200 unmodified lines
201201 break;
202202 default:
203203 c->bandwidth_hz = 8000000;
204− /* fall through */
204+ fallthrough;
205205 case 8000000:
206206 zl10353_single_write(fe, MCLK_RATIO, 0x75);
207207 zl10353_single_write(fe, 0x64, 0x36);
@@ -258,7 +258,7 @@ static int zl10353_set_parameters(struct dvb_frontend *fe) · 50 unmodified lines
258258 if (c->hierarchy == HIERARCHY_AUTO ||
259259 c->hierarchy == HIERARCHY_NONE)
260260 break;
261− /* fall through */
261+ fallthrough;
262262 default:
263263 return -EINVAL;
264264 }
drivers/media/pci/cx23885/cx23885-cards.c+2−2
@@ -2209,7 +2209,7 @@ void cx23885_card_setup(struct cx23885_dev *dev) · 2208 unmodified lines
22092209 ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */
22102210 ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */
22112211 ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
2212− /* fall-through */
2212+ fallthrough;
22132213 case CX23885_BOARD_DVICO_FUSIONHDTV_5_EXP:
22142214 ts1->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */
22152215 ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */
@@ -2370,7 +2370,7 @@ void cx23885_card_setup(struct cx23885_dev *dev) · 154 unmodified lines
23702370 /* Currently only enabled for the integrated IR controller */
23712371 if (!enable_885_ir)
23722372 break;
2373− /* fall-through */
2373+ fallthrough;
23742374 case CX23885_BOARD_HAUPPAUGE_HVR1250:
23752375 case CX23885_BOARD_HAUPPAUGE_HVR1800:
23762376 case CX23885_BOARD_HAUPPAUGE_IMPACTVCBE:
drivers/media/pci/ddbridge/ddbridge-core.c+12−11
@@ -1310,7 +1310,7 @@ static void dvb_input_detach(struct ddb_input *input) · 1309 unmodified lines
13101310 dvb_unregister_frontend(dvb->fe2);
13111311 if (dvb->fe)
13121312 dvb_unregister_frontend(dvb->fe);
1313− /* fallthrough */
1313+ fallthrough;
13141314 case 0x30:
13151315 dvb_module_release(dvb->i2c_client[0]);
13161316 dvb->i2c_client[0] = NULL;
@@ -1321,22 +1321,22 @@ static void dvb_input_detach(struct ddb_input *input) · 4 unmodified lines
13211321 dvb_frontend_detach(dvb->fe);
13221322 dvb->fe = NULL;
13231323 dvb->fe2 = NULL;
1324− /* fallthrough */
1324+ fallthrough;
13251325 case 0x20:
13261326 dvb_net_release(&dvb->dvbnet);
1327− /* fallthrough */
1327+ fallthrough;
13281328 case 0x12:
13291329 dvbdemux->dmx.remove_frontend(&dvbdemux->dmx,
13301330 &dvb->hw_frontend);
13311331 dvbdemux->dmx.remove_frontend(&dvbdemux->dmx,
13321332 &dvb->mem_frontend);
1333− /* fallthrough */
1333+ fallthrough;
13341334 case 0x11:
13351335 dvb_dmxdev_release(&dvb->dmxdev);
1336− /* fallthrough */
1336+ fallthrough;
13371337 case 0x10:
13381338 dvb_dmx_release(&dvb->demux);
1339− /* fallthrough */
1339+ fallthrough;
13401340 case 0x01:
13411341 break;
13421342 }
@@ -1559,7 +1559,7 @@ static int dvb_input_attach(struct ddb_input *input) · 216 unmodified lines
15591559 osc24 = 0;
15601560 else
15611561 osc24 = 1;
1562− /* fall-through */
1562+ fallthrough;
15631563 case DDB_TUNER_DVBCT2_SONY_P:
15641564 case DDB_TUNER_DVBC2T2_SONY_P:
15651565 case DDB_TUNER_ISDBT_SONY_P:
@@ -1575,7 +1575,7 @@ static int dvb_input_attach(struct ddb_input *input) · 9 unmodified lines
15751575 break;
15761576 case DDB_TUNER_DVBC2T2I_SONY:
15771577 osc24 = 1;
1578− /* fall-through */
1578+ fallthrough;
15791579 case DDB_TUNER_DVBCT2_SONY:
15801580 case DDB_TUNER_DVBC2T2_SONY:
15811581 case DDB_TUNER_ISDBT_SONY:
@@ -2036,7 +2036,7 @@ static int ddb_port_attach(struct ddb_port *port) · 454 unmodified lines
20362036 ret = ddb_ci_attach(port, ci_bitrate);
20372037 if (ret < 0)
20382038 break;
2039− /* fall-through */
2039+ fallthrough;
20402040 case DDB_PORT_LOOP:
20412041 ret = dvb_register_device(port->dvb[0].adap,
20422042 &port->dvb[0].dev,
@@ -2432,7 +2432,8 @@ void ddb_ports_init(struct ddb *dev) · 389 unmodified lines
24322432 ddb_input_init(port, 4 + i, 1, 4 + i);
24332433 ddb_output_init(port, i);
24342434 break;
2435− } /* fallthrough */
2435+ }
2436+ fallthrough;
24362437 case DDB_OCTOPUS:
24372438 ddb_input_init(port, 2 * i, 0, 2 * i);
24382439 ddb_input_init(port, 2 * i + 1, 1, 2 * i + 1);
@@ -3417,7 +3418,7 @@ int ddb_exit_ddbridge(int stage, int error) · 978 unmodified lines
34173418 default:
34183419 case 2:
34193420 destroy_workqueue(ddb_wq);
3420− /* fall-through */
3421+ fallthrough;
34213422 case 1:
34223423 ddb_class_destroy();
34233424 break;
drivers/media/pci/meye/meye.c+1−1
@@ -952,7 +952,7 @@ static int meyeioc_sync(struct file *file, void *fh, int *i) · 951 unmodified lines
952952 mutex_unlock(&meye.lock);
953953 return -EINTR;
954954 }
955− /* fall through */
955+ fallthrough;
956956 case MEYE_BUF_DONE:
957957 meye.grab_buffer[*i].state = MEYE_BUF_UNUSED;
958958 if (kfifo_out_locked(&meye.doneq, (unsigned char *)&unused,
drivers/media/pci/ttpci/av7110.c+2−2
@@ -637,7 +637,7 @@ static void gpioirq(unsigned long cookie) · 636 unmodified lines
637637 iwdebi(av7110, DEBINOSWAP, RX_BUFF, 0, 2);
638638 break;
639639 }
640− /* fall through */
640+ fallthrough;
641641
642642 case DATA_TS_RECORD:
643643 case DATA_PES_RECORD:
@@ -2176,7 +2176,7 @@ static int frontend_init(struct av7110 *av7110) · 1532 unmodified lines
21762176 break;
21772177 }
21782178 }
2179− /* fall-thru */
2179+ fallthrough;
21802180
21812181 case 0x0008: // Hauppauge/TT DVB-T
21822182 // Grundig 29504-401
drivers/media/pci/ttpci/av7110_hw.c+1−1
@@ -1107,7 +1107,7 @@ int av7110_osd_cmd(struct av7110 *av7110, osd_cmd_t *dc) · 1106 unmodified lines
11071107 break;
11081108 case OSD_SetRow:
11091109 dc->y1 = dc->y0;
1110− /* fall through */
1110+ fallthrough;
11111111 case OSD_SetBlock:
11121112 ret = OSDSetBlock(av7110, dc->x0, dc->y0, dc->x1, dc->y1, dc->color, dc->data);
11131113 break;
drivers/media/pci/ttpci/av7110_ipack.c+1−1
@@ -182,7 +182,7 @@ int av7110_ipack_instant_repack (const u8 *buf, int count, struct ipack *p) · 181 unmodified lines
182182 case DSM_CC_STREAM :
183183 case ISO13522_STREAM:
184184 p->done = 1;
185− /* fall through */
185+ fallthrough;
186186 case PRIVATE_STREAM1:
187187 case VIDEO_STREAM_S ... VIDEO_STREAM_E:
188188 case AUDIO_STREAM_S ... AUDIO_STREAM_E:
drivers/media/pci/ttpci/budget-av.c+1−1
@@ -1226,7 +1226,7 @@ static void frontend_init(struct budget_av *budget_av) · 1225 unmodified lines
12261226 * but so far it has been only confirmed for this type
12271227 */
12281228 budget_av->reinitialise_demod = 1;
1229− /* fall through */
1229+ fallthrough;
12301230 case SUBID_DVBS_KNC1_PLUS:
12311231 case SUBID_DVBS_EASYWATCH_1:
12321232 if (saa->pci->subsystem_vendor == 0x1894) {
drivers/media/pci/ttpci/budget.c+2−2
@@ -613,7 +613,7 @@ static void frontend_init(struct budget *budget) · 612 unmodified lines
613613 break;
614614 }
615615 }
616− /* fall through */
616+ fallthrough;
617617 case 0x1018: // TT Budget-S-1401 (philips tda10086/philips tda8262)
618618 {
619619 struct dvb_frontend *fe;
@@ -638,7 +638,7 @@ static void frontend_init(struct budget *budget) · 18 unmodified lines
638638 break;
639639 }
640640 }
641− /* fall through */
641+ fallthrough;
642642
643643 case 0x101c: { /* TT S2-1600 */
644644 const struct stv6110x_devctl *ctl;
drivers/media/platform/sh_vou.c+2−2
@@ -220,7 +220,7 @@ static void sh_vou_stream_config(struct sh_vou_device *vou_dev) · 219 unmodified lines
220220 break;
221221 case V4L2_PIX_FMT_RGB565:
222222 dataswap ^= 1;
223− /* fall through */
223+ fallthrough;
224224 case V4L2_PIX_FMT_RGB565X:
225225 row_coeff = 2;
226226 break;
@@ -802,7 +802,7 @@ static u32 sh_vou_ntsc_mode(enum sh_vou_bus_fmt bus_fmt) · 575 unmodified lines
802802 default:
803803 pr_warn("%s(): Invalid bus-format code %d, using default 8-bit\n",
804804 __func__, bus_fmt);
805− /* fall through */
805+ fallthrough;
806806 case SH_VOU_BUS_8BIT:
807807 return 1;
808808 case SH_VOU_BUS_16BIT:
drivers/media/radio/radio-si476x.c+2−1
@@ -105,7 +105,8 @@ static inline enum phase_diversity_modes_idx · 104 unmodified lines
105105 si476x_phase_diversity_mode_to_idx(enum si476x_phase_diversity_mode mode)
106106 {
107107 switch (mode) {
108− default: /* FALLTHROUGH */
108+ default:
109+ fallthrough;
109110 case SI476X_PHDIV_DISABLED:
110111 return SI476X_IDX_PHDIV_DISABLED;
111112 case SI476X_PHDIV_PRIMARY_COMBINING:
drivers/media/radio/tea575x.c+1−1
@@ -249,7 +249,7 @@ int snd_tea575x_enum_freq_bands(struct snd_tea575x *tea, · 248 unmodified lines
249249 index = BAND_AM;
250250 break;
251251 }
252− /* Fall through */
252+ fallthrough;
253253 default:
254254 return -EINVAL;
255255 }
drivers/media/rc/bpf-lirc.c+1−1
@@ -112,7 +112,7 @@ lirc_mode2_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) · 111 unmodified lines
112112 case BPF_FUNC_trace_printk:
113113 if (perfmon_capable())
114114 return bpf_get_trace_printk_proto();
115− /* fall through */
115+ fallthrough;
116116 default:
117117 return NULL;
118118 }
drivers/media/rc/ir-rc6-decoder.c+1−1
@@ -64,7 +64,7 @@ static enum rc6_mode rc6_mode(struct rc6_dec *data) · 63 unmodified lines
6464 case 6:
6565 if (!data->toggle)
6666 return RC6_MODE_6A;
67− /* fall through */
67+ fallthrough;
6868 default:
6969 return RC6_MODE_UNKNOWN;
7070 }
drivers/media/rc/ir-sony-decoder.c+1−1
@@ -102,7 +102,7 @@ static int ir_sony_decode(struct rc_dev *dev, struct ir_raw_event ev) · 101 unmodified lines
102102 }
103103
104104 data->state = STATE_FINISHED;
105− /* Fall through */
105+ fallthrough;
106106
107107 case STATE_FINISHED:
108108 if (ev.pulse)
drivers/media/tuners/xc5000.c+1−1
@@ -756,7 +756,7 @@ static int xc5000_set_digital_params(struct dvb_frontend *fe) · 755 unmodified lines
756756 if (!bw)
757757 bw = 6000000;
758758 /* fall to OFDM handling */
759− /* fall through */
759+ fallthrough;
760760 case SYS_DMBTH:
761761 case SYS_DVBT:
762762 case SYS_DVBT2:
drivers/media/usb/b2c2/flexcop-usb.c+1−1
@@ -525,7 +525,7 @@ static int flexcop_usb_init(struct flexcop_usb *fc_usb) · 524 unmodified lines
525525 case USB_SPEED_HIGH:
526526 info("running at HIGH speed.");
527527 break;
528− case USB_SPEED_UNKNOWN: /* fall through */
528+ case USB_SPEED_UNKNOWN:
529529 default:
530530 err("cannot handle USB speed because it is unknown.");
531531 return -ENODEV;
drivers/media/usb/cpia2/cpia2_core.c+18−18
@@ -165,7 +165,7 @@ int cpia2_do_command(struct camera_data *cam, · 164 unmodified lines
165165 break;
166166 case CPIA2_CMD_SET_VP_BRIGHTNESS:
167167 cmd.buffer.block_data[0] = param;
168− /* fall through */
168+ fallthrough;
169169 case CPIA2_CMD_GET_VP_BRIGHTNESS:
170170 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
171171 cmd.reg_count = 1;
@@ -176,7 +176,7 @@ int cpia2_do_command(struct camera_data *cam, · 4 unmodified lines
176176 break;
177177 case CPIA2_CMD_SET_CONTRAST:
178178 cmd.buffer.block_data[0] = param;
179− /* fall through */
179+ fallthrough;
180180 case CPIA2_CMD_GET_CONTRAST:
181181 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
182182 cmd.reg_count = 1;
@@ -184,7 +184,7 @@ int cpia2_do_command(struct camera_data *cam, · 1 unmodified line
184184 break;
185185 case CPIA2_CMD_SET_VP_SATURATION:
186186 cmd.buffer.block_data[0] = param;
187− /* fall through */
187+ fallthrough;
188188 case CPIA2_CMD_GET_VP_SATURATION:
189189 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
190190 cmd.reg_count = 1;
@@ -195,7 +195,7 @@ int cpia2_do_command(struct camera_data *cam, · 4 unmodified lines
195195 break;
196196 case CPIA2_CMD_SET_VP_GPIO_DATA:
197197 cmd.buffer.block_data[0] = param;
198− /* fall through */
198+ fallthrough;
199199 case CPIA2_CMD_GET_VP_GPIO_DATA:
200200 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
201201 cmd.reg_count = 1;
@@ -203,7 +203,7 @@ int cpia2_do_command(struct camera_data *cam, · 1 unmodified line
203203 break;
204204 case CPIA2_CMD_SET_VP_GPIO_DIRECTION:
205205 cmd.buffer.block_data[0] = param;
206− /* fall through */
206+ fallthrough;
207207 case CPIA2_CMD_GET_VP_GPIO_DIRECTION:
208208 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
209209 cmd.reg_count = 1;
@@ -211,7 +211,7 @@ int cpia2_do_command(struct camera_data *cam, · 1 unmodified line
211211 break;
212212 case CPIA2_CMD_SET_VC_MP_GPIO_DATA:
213213 cmd.buffer.block_data[0] = param;
214− /* fall through */
214+ fallthrough;
215215 case CPIA2_CMD_GET_VC_MP_GPIO_DATA:
216216 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC;
217217 cmd.reg_count = 1;
@@ -219,7 +219,7 @@ int cpia2_do_command(struct camera_data *cam, · 1 unmodified line
219219 break;
220220 case CPIA2_CMD_SET_VC_MP_GPIO_DIRECTION:
221221 cmd.buffer.block_data[0] = param;
222− /*fall through */
222+ fallthrough;
223223 case CPIA2_CMD_GET_VC_MP_GPIO_DIRECTION:
224224 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC;
225225 cmd.reg_count = 1;
@@ -234,7 +234,7 @@ int cpia2_do_command(struct camera_data *cam, · 8 unmodified lines
234234 break;
235235 case CPIA2_CMD_SET_FLICKER_MODES:
236236 cmd.buffer.block_data[0] = param;
237− /* fall through */
237+ fallthrough;
238238 case CPIA2_CMD_GET_FLICKER_MODES:
239239 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
240240 cmd.reg_count = 1;
@@ -281,7 +281,7 @@ int cpia2_do_command(struct camera_data *cam, · 40 unmodified lines
281281 break;
282282 case CPIA2_CMD_SET_USER_MODE:
283283 cmd.buffer.block_data[0] = param;
284− /* fall through */
284+ fallthrough;
285285 case CPIA2_CMD_GET_USER_MODE:
286286 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
287287 cmd.reg_count = 1;
@@ -301,7 +301,7 @@ int cpia2_do_command(struct camera_data *cam, · 13 unmodified lines
301301 break;
302302 case CPIA2_CMD_SET_WAKEUP:
303303 cmd.buffer.block_data[0] = param;
304− /* fall through */
304+ fallthrough;
305305 case CPIA2_CMD_GET_WAKEUP:
306306 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC;
307307 cmd.reg_count = 1;
@@ -309,7 +309,7 @@ int cpia2_do_command(struct camera_data *cam, · 1 unmodified line
309309 break;
310310 case CPIA2_CMD_SET_PW_CONTROL:
311311 cmd.buffer.block_data[0] = param;
312− /* fall through */
312+ fallthrough;
313313 case CPIA2_CMD_GET_PW_CONTROL:
314314 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC;
315315 cmd.reg_count = 1;
@@ -322,7 +322,7 @@ int cpia2_do_command(struct camera_data *cam, · 6 unmodified lines
322322 break;
323323 case CPIA2_CMD_SET_SYSTEM_CTRL:
324324 cmd.buffer.block_data[0] = param;
325− /* fall through */
325+ fallthrough;
326326 case CPIA2_CMD_GET_SYSTEM_CTRL:
327327 cmd.req_mode =
328328 CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_SYSTEM;
@@ -331,7 +331,7 @@ int cpia2_do_command(struct camera_data *cam, · 2 unmodified lines
331331 break;
332332 case CPIA2_CMD_SET_VP_SYSTEM_CTRL:
333333 cmd.buffer.block_data[0] = param;
334− /* fall through */
334+ fallthrough;
335335 case CPIA2_CMD_GET_VP_SYSTEM_CTRL:
336336 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
337337 cmd.reg_count = 1;
@@ -339,7 +339,7 @@ int cpia2_do_command(struct camera_data *cam, · 1 unmodified line
339339 break;
340340 case CPIA2_CMD_SET_VP_EXP_MODES:
341341 cmd.buffer.block_data[0] = param;
342− /* fall through */
342+ fallthrough;
343343 case CPIA2_CMD_GET_VP_EXP_MODES:
344344 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
345345 cmd.reg_count = 1;
@@ -347,7 +347,7 @@ int cpia2_do_command(struct camera_data *cam, · 1 unmodified line
347347 break;
348348 case CPIA2_CMD_SET_DEVICE_CONFIG:
349349 cmd.buffer.block_data[0] = param;
350− /* fall through */
350+ fallthrough;
351351 case CPIA2_CMD_GET_DEVICE_CONFIG:
352352 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
353353 cmd.reg_count = 1;
@@ -368,7 +368,7 @@ int cpia2_do_command(struct camera_data *cam, · 14 unmodified lines
368368 break;
369369 case CPIA2_CMD_SET_VC_CONTROL:
370370 cmd.buffer.block_data[0] = param;
371− /* fall through */
371+ fallthrough;
372372 case CPIA2_CMD_GET_VC_CONTROL:
373373 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC;
374374 cmd.reg_count = 1;
@@ -403,7 +403,7 @@ int cpia2_do_command(struct camera_data *cam, · 28 unmodified lines
403403 this register can also affect
404404 flicker modes */
405405 cmd.buffer.block_data[0] = param;
406− /* fall through */
406+ fallthrough;
407407 case CPIA2_CMD_GET_USER_EFFECTS:
408408 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
409409 cmd.reg_count = 1;
@@ -1751,7 +1751,7 @@ int cpia2_set_fps(struct camera_data *cam, int framerate) · 1341 unmodified lines
17511751 CPIA2_VP_SENSOR_FLAGS_500) {
17521752 return -EINVAL;
17531753 }
1754− /* Fall through */
1754+ fallthrough;
17551755 case CPIA2_VP_FRAMERATE_15:
17561756 case CPIA2_VP_FRAMERATE_12_5:
17571757 case CPIA2_VP_FRAMERATE_7_5:
drivers/media/usb/cx231xx/cx231xx-video.c+1−1
@@ -996,7 +996,7 @@ void cx231xx_v4l2_create_entities(struct cx231xx *dev) · 995 unmodified lines
996996 /* The DVB core will handle it */
997997 if (dev->tuner_type == TUNER_ABSENT)
998998 continue;
999− /* fall through */
999+ fallthrough;
10001000 default: /* just to shut up a gcc warning */
10011001 ent->function = MEDIA_ENT_F_CONN_RF;
10021002 break;
drivers/media/usb/dvb-usb/dib0700_devices.c+6−6
@@ -1659,14 +1659,14 @@ static int dib8096_set_param_override(struct dvb_frontend *fe) · 1658 unmodified lines
16591659
16601660 switch (band) {
16611661 default:
1662− deb_info("Warning : Rf frequency (%iHz) is not in the supported range, using VHF switch ", fe->dtv_property_cache.frequency);
1663− /* fall through */
1662+ deb_info("Warning : Rf frequency (%iHz) is not in the supported range, using VHF switch ", fe->dtv_property_cache.frequency);
1663+ fallthrough;
16641664 case BAND_VHF:
1665− state->dib8000_ops.set_gpio(fe, 3, 0, 1);
1666− break;
1665+ state->dib8000_ops.set_gpio(fe, 3, 0, 1);
1666+ break;
16671667 case BAND_UHF:
1668− state->dib8000_ops.set_gpio(fe, 3, 0, 0);
1669− break;
1668+ state->dib8000_ops.set_gpio(fe, 3, 0, 0);
1669+ break;
16701670 }
16711671
16721672 ret = state->set_param_save(fe);
drivers/media/usb/dvb-usb/dw2102.c+3−3
@@ -1886,12 +1886,12 @@ static int dw2102_load_firmware(struct usb_device *dev, · 1885 unmodified lines
18861886 switch (le16_to_cpu(dev->descriptor.idProduct)) {
18871887 case USB_PID_TEVII_S650:
18881888 dw2104_properties.rc.core.rc_codes = RC_MAP_TEVII_NEC;
1889− /* fall through */
1889+ fallthrough;
18901890 case USB_PID_DW2104:
18911891 reset = 1;
18921892 dw210x_op_rw(dev, 0xc4, 0x0000, 0, &reset, 1,
18931893 DW210X_WRITE_MSG);
1894− /* fall through */
1894+ fallthrough;
18951895 case USB_PID_DW3101:
18961896 reset = 0;
18971897 dw210x_op_rw(dev, 0xbf, 0x0040, 0, &reset, 0,
@@ -1924,7 +1924,7 @@ static int dw2102_load_firmware(struct usb_device *dev, · 26 unmodified lines
19241924 break;
19251925 }
19261926 }
1927− /* fall through */
1927+ fallthrough;
19281928 case 0x2101:
19291929 dw210x_op_rw(dev, 0xbc, 0x0030, 0, &reset16[0], 2,
19301930 DW210X_READ_MSG);
drivers/media/v4l2-core/v4l2-ctrls.c+1−1
@@ -2200,7 +2200,7 @@ static int check_range(enum v4l2_ctrl_type type, · 2199 unmodified lines
22002200 case V4L2_CTRL_TYPE_BOOLEAN:
22012201 if (step != 1 || max > 1 || min < 0)
22022202 return -ERANGE;
2203− /* fall through */
2203+ fallthrough;
22042204 case V4L2_CTRL_TYPE_U8:
22052205 case V4L2_CTRL_TYPE_U16:
22062206 case V4L2_CTRL_TYPE_U32:
drivers/media/v4l2-core/v4l2-ioctl.c+0−2
@@ -782,7 +782,6 @@ static void v4l_print_frmsizeenum(const void *arg, bool write_only) · 781 unmodified lines
782782 p->stepwise.step_height);
783783 break;
784784 case V4L2_FRMSIZE_TYPE_CONTINUOUS:
785− /* fall through */
786785 default:
787786 pr_cont("\n");
788787 break;
@@ -816,7 +815,6 @@ static void v4l_print_frmivalenum(const void *arg, bool write_only) · 27 unmodified lines
816815 p->stepwise.step.denominator);
817816 break;
818817 case V4L2_FRMIVAL_TYPE_CONTINUOUS:
819− /* fall through */
820818 default:
821819 pr_cont("\n");
822820 break;
drivers/media/v4l2-core/videobuf-core.c+1−1
@@ -354,7 +354,7 @@ static void videobuf_status(struct videobuf_queue *q, struct v4l2_buffer *b, · 353 unmodified lines
354354 break;
355355 case VIDEOBUF_ERROR:
356356 b->flags |= V4L2_BUF_FLAG_ERROR;
357− /* fall through */
357+ fallthrough;
358358 case VIDEOBUF_DONE:
359359 b->flags |= V4L2_BUF_FLAG_DONE;
360360 break;
drivers/memory/omap-gpmc.c+0−1
@@ -313,7 +313,6 @@ static unsigned long gpmc_get_clk_period(int cs, enum gpmc_clk_domain cd) · 312 unmodified lines
313313 tick_ps *= div;
314314 break;
315315 case GPMC_CD_FCLK:
316− /* FALL-THROUGH */
317316 default:
318317 break;
319318 }
drivers/memstick/core/ms_block.c+6−6
@@ -371,7 +371,7 @@ again: · 370 unmodified lines
371371 serial mode), then just fall through */
372372 if (msb_read_int_reg(msb, -1))
373373 return 0;
374− /* fallthrough */
374+ fallthrough;
375375
376376 case MSB_RP_RECEIVE_INT_REQ_RESULT:
377377 intreg = mrq->data[0];
@@ -403,7 +403,7 @@ again: · 25 unmodified lines
403403 case MSB_RP_RECEIVE_STATUS_REG:
404404 msb->regs.status = *(struct ms_status_register *)mrq->data;
405405 msb->state = MSB_RP_SEND_OOB_READ;
406− /* fallthrough */
406+ fallthrough;
407407
408408 case MSB_RP_SEND_OOB_READ:
409409 if (!msb_read_regs(msb,
@@ -418,7 +418,7 @@ again: · 8 unmodified lines
418418 msb->regs.extra_data =
419419 *(struct ms_extra_data_register *) mrq->data;
420420 msb->state = MSB_RP_SEND_READ_DATA;
421− /* fallthrough */
421+ fallthrough;
422422
423423 case MSB_RP_SEND_READ_DATA:
424424 /* Skip that state if we only read the oob */
@@ -518,7 +518,7 @@ again: · 93 unmodified lines
518518 msb->state = MSB_WB_RECEIVE_INT_REQ;
519519 if (msb_read_int_reg(msb, -1))
520520 return 0;
521− /* fallthrough */
521+ fallthrough;
522522
523523 case MSB_WB_RECEIVE_INT_REQ:
524524 intreg = mrq->data[0];
@@ -549,7 +549,7 @@ again: · 24 unmodified lines
549549
550550 msb->int_polling = false;
551551 msb->state = MSB_WB_SEND_WRITE_DATA;
552− /* fallthrough */
552+ fallthrough;
553553
554554 case MSB_WB_SEND_WRITE_DATA:
555555 sg_init_table(sg, ARRAY_SIZE(sg));
@@ -628,7 +628,7 @@ again: · 72 unmodified lines
628628 msb->state = MSB_SC_RECEIVE_INT_REQ;
629629 if (msb_read_int_reg(msb, -1))
630630 return 0;
631− /* fallthrough */
631+ fallthrough;
632632
633633 case MSB_SC_RECEIVE_INT_REQ:
634634 intreg = mrq->data[0];
drivers/memstick/host/jmb38x_ms.c+2−2
@@ -255,11 +255,11 @@ static unsigned int jmb38x_ms_write_data(struct jmb38x_ms_host *host, · 254 unmodified lines
255255 case 3:
256256 host->io_word[0] |= buf[off + 2] << 16;
257257 host->io_pos++;
258− /* fall through */
258+ fallthrough;
259259 case 2:
260260 host->io_word[0] |= buf[off + 1] << 8;
261261 host->io_pos++;
262− /* fall through */
262+ fallthrough;
263263 case 1:
264264 host->io_word[0] |= buf[off];
265265 host->io_pos++;
drivers/memstick/host/tifm_ms.c+2−2
@@ -162,11 +162,11 @@ static unsigned int tifm_ms_write_data(struct tifm_ms *host, · 161 unmodified lines
162162 case 3:
163163 host->io_word |= buf[off + 2] << 16;
164164 host->io_pos++;
165− /* fall through */
165+ fallthrough;
166166 case 2:
167167 host->io_word |= buf[off + 1] << 8;
168168 host->io_pos++;
169− /* fall through */
169+ fallthrough;
170170 case 1:
171171 host->io_word |= buf[off];
172172 host->io_pos++;
drivers/message/fusion/mptbase.c+3−3
@@ -642,7 +642,7 @@ mptbase_reply(MPT_ADAPTER *ioc, MPT_FRAME_HDR *req, MPT_FRAME_HDR *reply) · 641 unmodified lines
642642 freereq = 0;
643643 if (event != MPI_EVENT_EVENT_CHANGE)
644644 break;
645− /* fall through */
645+ fallthrough;
646646 case MPI_FUNCTION_CONFIG:
647647 case MPI_FUNCTION_SAS_IO_UNIT_CONTROL:
648648 ioc->mptbase_cmds.status |= MPT_MGMT_STATUS_COMMAND_GOOD;
@@ -1887,7 +1887,7 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id) · 1238 unmodified lines
18871887 case MPI_MANUFACTPAGE_DEVICEID_FC939X:
18881888 case MPI_MANUFACTPAGE_DEVICEID_FC949X:
18891889 ioc->errata_flag_1064 = 1;
1890− /* fall through */
1890+ fallthrough;
18911891 case MPI_MANUFACTPAGE_DEVICEID_FC909:
18921892 case MPI_MANUFACTPAGE_DEVICEID_FC929:
18931893 case MPI_MANUFACTPAGE_DEVICEID_FC919:
@@ -1932,7 +1932,7 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id) · 38 unmodified lines
19321932 pcixcmd &= 0x8F;
19331933 pci_write_config_byte(pdev, 0x6a, pcixcmd);
19341934 }
1935− /* fall through */
1935+ fallthrough;
19361936
19371937 case MPI_MANUFACTPAGE_DEVID_1030_53C1035:
19381938 ioc->bus_type = SPI;
drivers/message/fusion/mptsas.c+1−1
@@ -4326,7 +4326,7 @@ mptsas_hotplug_work(MPT_ADAPTER *ioc, struct fw_event_work *fw_event, · 4325 unmodified lines
43264326 }
43274327 }
43284328 mpt_findImVolumes(ioc);
4329− /* fall through */
4329+ fallthrough;
43304330
43314331 case MPTSAS_ADD_DEVICE:
43324332 memset(&sas_device, 0, sizeof(struct mptsas_devinfo));
drivers/message/fusion/mptscsih.c+2−2
@@ -784,7 +784,7 @@ mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr) · 783 unmodified lines
784784 /*
785785 * Allow non-SAS & non-NEXUS_LOSS to drop into below code
786786 */
787− /* Fall through */
787+ fallthrough;
788788
789789 case MPI_IOCSTATUS_SCSI_TASK_TERMINATED: /* 0x0048 */
790790 /* Linux handles an unsolicited DID_RESET better
@@ -881,7 +881,7 @@ mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr) · 90 unmodified lines
881881
882882 case MPI_IOCSTATUS_SCSI_DATA_OVERRUN: /* 0x0044 */
883883 scsi_set_resid(sc, 0);
884− /* Fall through */
884+ fallthrough;
885885 case MPI_IOCSTATUS_SCSI_RECOVERED_ERROR: /* 0x0040 */
886886 case MPI_IOCSTATUS_SUCCESS: /* 0x0000 */
887887 sc->result = (DID_OK << 16) | scsi_status;
drivers/mfd/db8500-prcmu.c+2−2
@@ -1515,10 +1515,10 @@ static unsigned long dsiclk_rate(u8 n) · 1514 unmodified lines
15151515 switch (divsel) {
15161516 case PRCM_DSI_PLLOUT_SEL_PHI_4:
15171517 div *= 2;
1518− /* Fall through */
1518+ fallthrough;
15191519 case PRCM_DSI_PLLOUT_SEL_PHI_2:
15201520 div *= 2;
1521− /* Fall through */
1521+ fallthrough;
15221522 case PRCM_DSI_PLLOUT_SEL_PHI:
15231523 return pll_rate(PRCM_PLLDSI_FREQ, clock_rate(PRCMU_HDMICLK),
15241524 PLL_RAW) / div;
drivers/mfd/iqs62x.c+3−3
@@ -136,7 +136,7 @@ static int iqs62x_dev_init(struct iqs62x_core *iqs62x) · 135 unmodified lines
136136 if (val & IQS620_PROX_SETTINGS_4_SAR_EN)
137137 iqs62x->ui_sel = IQS62X_UI_SAR1;
138138
139− /* fall through */
139+ fallthrough;
140140
141141 case IQS621_PROD_NUM:
142142 ret = regmap_write(iqs62x->regmap, IQS620_GLBL_EVENT_MASK,
@@ -470,7 +470,7 @@ static irqreturn_t iqs62x_irq(int irq, void *context) · 327 unmodified lines
470470 case IQS62X_EVENT_UI_LO:
471471 event_data.ui_data = get_unaligned_le16(&event_map[i]);
472472
473− /* fall through */
473+ fallthrough;
474474
475475 case IQS62X_EVENT_UI_HI:
476476 case IQS62X_EVENT_NONE:
@@ -491,7 +491,7 @@ static irqreturn_t iqs62x_irq(int irq, void *context) · 14 unmodified lines
491491 case IQS62X_EVENT_HYST:
492492 event_map[i] <<= iqs62x->dev_desc->hyst_shift;
493493
494− /* fall through */
494+ fallthrough;
495495
496496 case IQS62X_EVENT_WHEEL:
497497 case IQS62X_EVENT_HALL:
drivers/mfd/mfd-core.c+6−6
@@ -126,10 +126,6 @@ static int mfd_match_of_node_to_dev(struct platform_device *pdev, · 125 unmodified lines
126126 const __be32 *reg;
127127 u64 of_node_addr;
128128
129− /* Skip devices 'disabled' by Device Tree */
130− if (!of_device_is_available(np))
131− return -ENODEV;
132−
133129 /* Skip if OF node has previously been allocated to a device */
134130 list_for_each_entry(of_entry, &mfd_of_node_list, list)
135131 if (of_entry->np == np)
@@ -212,6 +208,12 @@ static int mfd_add_device(struct device *parent, int id, · 76 unmodified lines
212208 if (IS_ENABLED(CONFIG_OF) && parent->of_node && cell->of_compatible) {
213209 for_each_child_of_node(parent->of_node, np) {
214210 if (of_device_is_compatible(np, cell->of_compatible)) {
211+ /* Ignore 'disabled' devices error free */
212+ if (!of_device_is_available(np)) {
213+ ret = 0;
214+ goto fail_alias;
215+ }
216+
215217 ret = mfd_match_of_node_to_dev(pdev, np, cell);
216218 if (ret == -EAGAIN)
217219 continue;
@@ -370,8 +372,6 @@ static int mfd_remove_devices_fn(struct device *dev, void *data) · 152 unmodified lines
370372 regulator_bulk_unregister_supply_alias(dev, cell->parent_supplies,
371373 cell->num_parent_supplies);
372374
373− kfree(cell);
374−
375375 platform_device_unregister(pdev);
376376 return 0;
377377 }
drivers/mfd/mxs-lradc.c+1−1
@@ -172,7 +172,7 @@ static int mxs_lradc_probe(struct platform_device *pdev) · 171 unmodified lines
172172 MXS_LRADC_TOUCHSCREEN_5WIRE;
173173 break;
174174 }
175− /* fall through - to an error message for i.MX23 */
175+ fallthrough; /* to an error message for i.MX23 */
176176 default:
177177 dev_err(&pdev->dev,
178178 "Unsupported number of touchscreen wires (%d)\n"
drivers/mfd/omap-usb-host.c+2−2
@@ -308,7 +308,7 @@ static int usbhs_runtime_resume(struct device *dev) · 307 unmodified lines
308308 i, r);
309309 }
310310 }
311− /* Fall through - as HSIC mode needs utmi_clk */
311+ fallthrough; /* as HSIC mode needs utmi_clk */
312312
313313 case OMAP_EHCI_PORT_MODE_TLL:
314314 if (!IS_ERR(omap->utmi_clk[i])) {
@@ -344,7 +344,7 @@ static int usbhs_runtime_suspend(struct device *dev) · 29 unmodified lines
344344
345345 if (!IS_ERR(omap->hsic480m_clk[i]))
346346 clk_disable_unprepare(omap->hsic480m_clk[i]);
347− /* Fall through - as utmi_clks were used in HSIC mode */
347+ fallthrough; /* as utmi_clks were used in HSIC mode */
348348
349349 case OMAP_EHCI_PORT_MODE_TLL:
350350 if (!IS_ERR(omap->utmi_clk[i]))
drivers/mfd/rave-sp.c+2−2
@@ -270,7 +270,7 @@ static void *stuff(unsigned char *dest, const unsigned char *src, size_t n) · 269 unmodified lines
270270 case RAVE_SP_ETX:
271271 case RAVE_SP_DLE:
272272 *dest++ = RAVE_SP_DLE;
273− /* FALLTHROUGH */
273+ fallthrough;
274274 default:
275275 *dest++ = byte;
276276 }
@@ -541,7 +541,7 @@ static int rave_sp_receive_buf(struct serdev_device *serdev, · 264 unmodified lines
541541 * deframer buffer
542542 */
543543
544− /* FALLTHROUGH */
544+ fallthrough;
545545
546546 case RAVE_SP_EXPECT_ESCAPED_DATA:
547547 if (deframer->length == sizeof(deframer->data)) {
drivers/mfd/syscon.c+1−1
@@ -95,7 +95,7 @@ static struct syscon *of_syscon_register(struct device_node *np, bool check_clk) · 94 unmodified lines
9595 break;
9696 default:
9797 pr_err("Failed to retrieve valid hwlock: %d\n", ret);
98− /* fall-through */
98+ fallthrough;
9999 case -EPROBE_DEFER:
100100 goto err_regmap;
101101 }
drivers/misc/eeprom/at25.c+5−5
@@ -90,10 +90,10 @@ static int at25_ee_read(void *priv, unsigned int offset, · 89 unmodified lines
9090 switch (at25->addrlen) {
9191 default: /* case 3 */
9292 *cp++ = offset >> 16;
93− /* fall through */
93+ fallthrough;
9494 case 2:
9595 *cp++ = offset >> 8;
96− /* fall through */
96+ fallthrough;
9797 case 1:
9898 case 0: /* can't happen: for better codegen */
9999 *cp++ = offset >> 0;
@@ -178,10 +178,10 @@ static int at25_ee_write(void *priv, unsigned int off, void *val, size_t count) · 78 unmodified lines
178178 switch (at25->addrlen) {
179179 default: /* case 3 */
180180 *cp++ = offset >> 16;
181− /* fall through */
181+ fallthrough;
182182 case 2:
183183 *cp++ = offset >> 8;
184− /* fall through */
184+ fallthrough;
185185 case 1:
186186 case 0: /* can't happen: for better codegen */
187187 *cp++ = offset >> 0;
@@ -278,7 +278,7 @@ static int at25_fw_to_chip(struct device *dev, struct spi_eeprom *chip) · 90 unmodified lines
278278 switch (val) {
279279 case 9:
280280 chip->flags |= EE_INSTR_BIT3_IS_ADDR;
281− /* fall through */
281+ fallthrough;
282282 case 8:
283283 chip->flags |= EE_ADDR1;
284284 break;
drivers/misc/habanalabs/common/command_buffer.c+14−2
@@ -10,6 +10,7 @@ · 9 unmodified lines
1010
1111 #include <linux/mm.h>
1212 #include <linux/slab.h>
13+#include <linux/uaccess.h>
1314 #include <linux/genalloc.h>
1415
1516 static void cb_fini(struct hl_device *hdev, struct hl_cb *cb)
@@ -300,7 +301,7 @@ int hl_cb_mmap(struct hl_fpriv *hpriv, struct vm_area_struct *vma) · 284 unmodified lines
300301 struct hl_device *hdev = hpriv->hdev;
301302 struct hl_cb *cb;
302303 phys_addr_t address;
303− u32 handle;
304+ u32 handle, user_cb_size;
304305 int rc;
305306
306307 handle = vma->vm_pgoff;
@@ -314,7 +315,8 @@ int hl_cb_mmap(struct hl_fpriv *hpriv, struct vm_area_struct *vma) · 7 unmodified lines
314315 }
315316
316317 /* Validation check */
317− if ((vma->vm_end - vma->vm_start) != ALIGN(cb->size, PAGE_SIZE)) {
318+ user_cb_size = vma->vm_end - vma->vm_start;
319+ if (user_cb_size != ALIGN(cb->size, PAGE_SIZE)) {
318320 dev_err(hdev->dev,
319321 "CB mmap failed, mmap size 0x%lx != 0x%x cb size\n",
320322 vma->vm_end - vma->vm_start, cb->size);
@@ -322,6 +324,16 @@ int hl_cb_mmap(struct hl_fpriv *hpriv, struct vm_area_struct *vma) · 1 unmodified line
322324 goto put_cb;
323325 }
324326
327+ if (!access_ok((void __user *) (uintptr_t) vma->vm_start,
328+ user_cb_size)) {
329+ dev_err(hdev->dev,
330+ "user pointer is invalid - 0x%lx\n",
331+ vma->vm_start);
332+
333+ rc = -EINVAL;
334+ goto put_cb;
335+ }
336+
325337 spin_lock(&cb->lock);
326338
327339 if (cb->mmap) {
drivers/misc/habanalabs/common/command_submission.c+8−0
@@ -808,6 +808,14 @@ static int cs_ioctl_signal_wait(struct hl_fpriv *hpriv, enum hl_cs_type cs_type, · 807 unmodified lines
808808
809809 /* currently it is guaranteed to have only one chunk */
810810 chunk = &cs_chunk_array[0];
811+
812+ if (chunk->queue_index >= hdev->asic_prop.max_queues) {
813+ dev_err(hdev->dev, "Queue index %d is invalid\n",
814+ chunk->queue_index);
815+ rc = -EINVAL;
816+ goto free_cs_chunk_array;
817+ }
818+
811819 q_idx = chunk->queue_index;
812820 hw_queue_prop = &hdev->asic_prop.hw_queues_props[q_idx];
813821 q_type = hw_queue_prop->type;
drivers/misc/habanalabs/common/debugfs.c+4−4
@@ -19,7 +19,7 @@ · 18 unmodified lines
1919 static struct dentry *hl_debug_root;
2020
2121 static int hl_debugfs_i2c_read(struct hl_device *hdev, u8 i2c_bus, u8 i2c_addr,
22− u8 i2c_reg, u32 *val)
22+ u8 i2c_reg, long *val)
2323 {
2424 struct armcp_packet pkt;
2525 int rc;
@@ -36,7 +36,7 @@ static int hl_debugfs_i2c_read(struct hl_device *hdev, u8 i2c_bus, u8 i2c_addr, · 10 unmodified lines
3636 pkt.i2c_reg = i2c_reg;
3737
3838 rc = hdev->asic_funcs->send_cpu_message(hdev, (u32 *) &pkt, sizeof(pkt),
39− 0, (long *) val);
39+ 0, val);
4040
4141 if (rc)
4242 dev_err(hdev->dev, "Failed to read from I2C, error %d\n", rc);
@@ -827,7 +827,7 @@ static ssize_t hl_i2c_data_read(struct file *f, char __user *buf, · 784 unmodified lines
827827 struct hl_dbg_device_entry *entry = file_inode(f)->i_private;
828828 struct hl_device *hdev = entry->hdev;
829829 char tmp_buf[32];
830− u32 val;
830+ long val;
831831 ssize_t rc;
832832
833833 if (*ppos)
@@ -842,7 +842,7 @@ static ssize_t hl_i2c_data_read(struct file *f, char __user *buf, · 8 unmodified lines
842842 return rc;
843843 }
844844
845− sprintf(tmp_buf, "0x%02x\n", val);
845+ sprintf(tmp_buf, "0x%02lx\n", val);
846846 rc = simple_read_from_buffer(buf, count, ppos, tmp_buf,
847847 strlen(tmp_buf));
848848
drivers/misc/habanalabs/common/device.c+7−2
@@ -288,7 +288,7 @@ static int device_early_init(struct hl_device *hdev) · 287 unmodified lines
288288 for (i = 0 ; i < hdev->asic_prop.completion_queues_count ; i++) {
289289 snprintf(workq_name, 32, "hl-free-jobs-%u", i);
290290 hdev->cq_wq[i] = create_singlethread_workqueue(workq_name);
291− if (hdev->cq_wq == NULL) {
291+ if (hdev->cq_wq[i] == NULL) {
292292 dev_err(hdev->dev, "Failed to allocate CQ workqueue\n");
293293 rc = -ENOMEM;
294294 goto free_cq_wq;
@@ -1069,7 +1069,7 @@ again: · 774 unmodified lines
10691069 goto out_err;
10701070 }
10711071
1072− hl_set_max_power(hdev, hdev->max_power);
1072+ hl_set_max_power(hdev);
10731073 } else {
10741074 rc = hdev->asic_funcs->soft_reset_late_init(hdev);
10751075 if (rc) {
@@ -1318,6 +1318,11 @@ int hl_device_init(struct hl_device *hdev, struct class *hclass) · 242 unmodified lines
13181318 goto out_disabled;
13191319 }
13201320
1321+ /* Need to call this again because the max power might change,
1322+ * depending on card type for certain ASICs
1323+ */
1324+ hl_set_max_power(hdev);
1325+
13211326 /*
13221327 * hl_hwmon_init() must be called after device_late_init(), because only
13231328 * there we get the information from the device about which
drivers/misc/habanalabs/common/firmware_if.c+9−0
@@ -13,6 +13,7 @@ · 12 unmodified lines
1313 #include <linux/io-64-nonatomic-lo-hi.h>
1414 #include <linux/slab.h>
1515
16+#define FW_FILE_MAX_SIZE 0x1400000 /* maximum size of 20MB */
1617 /**
1718 * hl_fw_load_fw_to_device() - Load F/W code to device's memory.
1819 *
@@ -48,6 +49,14 @@ int hl_fw_load_fw_to_device(struct hl_device *hdev, const char *fw_name, · 29 unmodified lines
4849
4950 dev_dbg(hdev->dev, "%s firmware size == %zu\n", fw_name, fw_size);
5051
52+ if (fw_size > FW_FILE_MAX_SIZE) {
53+ dev_err(hdev->dev,
54+ "FW file size %zu exceeds maximum of %u bytes\n",
55+ fw_size, FW_FILE_MAX_SIZE);
56+ rc = -EINVAL;
57+ goto out;
58+ }
59+
5160 fw_data = (const u64 *) fw->data;
5261
5362 memcpy_toio(dst, fw_data, fw_size);
drivers/misc/habanalabs/common/habanalabs.h+5−2
@@ -1462,6 +1462,8 @@ struct hl_device_idle_busy_ts { · 1461 unmodified lines
14621462 * details.
14631463 * @in_reset: is device in reset flow.
14641464 * @curr_pll_profile: current PLL profile.
1465+ * @card_type: Various ASICs have several card types. This indicates the card
1466+ * type of the current device.
14651467 * @cs_active_cnt: number of active command submissions on this device (active
14661468 * means already in H/W queues)
14671469 * @major: habanalabs kernel driver major.
@@ -1566,6 +1568,7 @@ struct hl_device { · 98 unmodified lines
15661568 u64 clock_gating_mask;
15671569 atomic_t in_reset;
15681570 enum hl_pll_frequency curr_pll_profile;
1571+ enum armcp_card_types card_type;
15691572 int cs_active_cnt;
15701573 u32 major;
15711574 u32 high_pll;
@@ -1651,7 +1654,7 @@ struct hl_ioctl_desc { · 79 unmodified lines
16511654 *
16521655 * Return: true if the area is inside the valid range, false otherwise.
16531656 */
1654−static inline bool hl_mem_area_inside_range(u64 address, u32 size,
1657+static inline bool hl_mem_area_inside_range(u64 address, u64 size,
16551658 u64 range_start_address, u64 range_end_address)
16561659 {
16571660 u64 end_address = address + size;
@@ -1858,7 +1861,7 @@ int hl_get_pwm_info(struct hl_device *hdev, · 200 unmodified lines
18581861 void hl_set_pwm_info(struct hl_device *hdev, int sensor_index, u32 attr,
18591862 long value);
18601863 u64 hl_get_max_power(struct hl_device *hdev);
1861−void hl_set_max_power(struct hl_device *hdev, u64 value);
1864+void hl_set_max_power(struct hl_device *hdev);
18621865 int hl_set_voltage(struct hl_device *hdev,
18631866 int sensor_index, u32 attr, long value);
18641867 int hl_set_current(struct hl_device *hdev,
drivers/misc/habanalabs/common/memory.c+7−2
@@ -66,6 +66,11 @@ static int alloc_device_memory(struct hl_ctx *ctx, struct hl_mem_in *args, · 65 unmodified lines
6666 num_pgs = (args->alloc.mem_size + (page_size - 1)) >> page_shift;
6767 total_size = num_pgs << page_shift;
6868
69+ if (!total_size) {
70+ dev_err(hdev->dev, "Cannot allocate 0 bytes\n");
71+ return -EINVAL;
72+ }
73+
6974 contiguous = args->flags & HL_MEM_CONTIGUOUS;
7075
7176 if (contiguous) {
@@ -93,7 +98,7 @@ static int alloc_device_memory(struct hl_ctx *ctx, struct hl_mem_in *args, · 21 unmodified lines
9398 phys_pg_pack->contiguous = contiguous;
9499
95100 phys_pg_pack->pages = kvmalloc_array(num_pgs, sizeof(u64), GFP_KERNEL);
96− if (!phys_pg_pack->pages) {
101+ if (ZERO_OR_NULL_PTR(phys_pg_pack->pages)) {
97102 rc = -ENOMEM;
98103 goto pages_arr_err;
99104 }
@@ -683,7 +688,7 @@ static int init_phys_pg_pack_from_userptr(struct hl_ctx *ctx, · 583 unmodified lines
683688
684689 phys_pg_pack->pages = kvmalloc_array(total_npages, sizeof(u64),
685690 GFP_KERNEL);
686− if (!phys_pg_pack->pages) {
691+ if (ZERO_OR_NULL_PTR(phys_pg_pack->pages)) {
687692 rc = -ENOMEM;
688693 goto page_pack_arr_mem_err;
689694 }
drivers/misc/habanalabs/common/mmu.c+1−1
@@ -450,7 +450,7 @@ int hl_mmu_init(struct hl_device *hdev) · 449 unmodified lines
450450 hdev->mmu_shadow_hop0 = kvmalloc_array(prop->max_asid,
451451 prop->mmu_hop_table_size,
452452 GFP_KERNEL | __GFP_ZERO);
453− if (!hdev->mmu_shadow_hop0) {
453+ if (ZERO_OR_NULL_PTR(hdev->mmu_shadow_hop0)) {
454454 rc = -ENOMEM;
455455 goto err_pool_add;
456456 }
drivers/misc/habanalabs/common/pci.c+5−3
@@ -227,7 +227,7 @@ int hl_pci_set_inbound_region(struct hl_device *hdev, u8 region, · 226 unmodified lines
227227 }
228228
229229 /* Point to the specified address */
230− rc = hl_pci_iatu_write(hdev, offset + 0x14,
230+ rc |= hl_pci_iatu_write(hdev, offset + 0x14,
231231 lower_32_bits(pci_region->addr));
232232 rc |= hl_pci_iatu_write(hdev, offset + 0x18,
233233 upper_32_bits(pci_region->addr));
@@ -369,15 +369,17 @@ int hl_pci_init(struct hl_device *hdev) · 135 unmodified lines
369369 rc = hdev->asic_funcs->init_iatu(hdev);
370370 if (rc) {
371371 dev_err(hdev->dev, "Failed to initialize iATU\n");
372− goto disable_device;
372+ goto unmap_pci_bars;
373373 }
374374
375375 rc = hl_pci_set_dma_mask(hdev);
376376 if (rc)
377− goto disable_device;
377+ goto unmap_pci_bars;
378378
379379 return 0;
380380
381+unmap_pci_bars:
382+ hl_pci_bars_unmap(hdev);
381383 disable_device:
382384 pci_clear_master(pdev);
383385 pci_disable_device(pdev);
drivers/misc/habanalabs/common/sysfs.c+4−3
@@ -81,7 +81,7 @@ u64 hl_get_max_power(struct hl_device *hdev) · 80 unmodified lines
8181 return result;
8282 }
8383
84−void hl_set_max_power(struct hl_device *hdev, u64 value)
84+void hl_set_max_power(struct hl_device *hdev)
8585 {
8686 struct armcp_packet pkt;
8787 int rc;
@@ -90,7 +90,7 @@ void hl_set_max_power(struct hl_device *hdev, u64 value) · 2 unmodified lines
9090
9191 pkt.ctl = cpu_to_le32(ARMCP_PACKET_MAX_POWER_SET <<
9292 ARMCP_PKT_CTL_OPCODE_SHIFT);
93− pkt.value = cpu_to_le64(value);
93+ pkt.value = cpu_to_le64(hdev->max_power);
9494
9595 rc = hdev->asic_funcs->send_cpu_message(hdev, (u32 *) &pkt, sizeof(pkt),
9696 0, NULL);
@@ -316,7 +316,7 @@ static ssize_t max_power_store(struct device *dev, · 219 unmodified lines
316316 }
317317
318318 hdev->max_power = value;
319− hl_set_max_power(hdev, value);
319+ hl_set_max_power(hdev);
320320
321321 out:
322322 return count;
@@ -422,6 +422,7 @@ int hl_sysfs_init(struct hl_device *hdev) · 99 unmodified lines
422422 hdev->pm_mng_profile = PM_AUTO;
423423 else
424424 hdev->pm_mng_profile = PM_MANUAL;
425+
425426 hdev->max_power = hdev->asic_prop.max_power_default;
426427
427428 hdev->asic_funcs->add_device_attr(hdev, &hl_dev_clks_attr_group);
drivers/misc/habanalabs/gaudi/gaudi.c+67−25
@@ -154,6 +154,29 @@ static const u16 gaudi_packet_sizes[MAX_PACKET_ID] = { · 153 unmodified lines
154154 [PACKET_LOAD_AND_EXE] = sizeof(struct packet_load_and_exe)
155155 };
156156
157+static inline bool validate_packet_id(enum packet_id id)
158+{
159+ switch (id) {
160+ case PACKET_WREG_32:
161+ case PACKET_WREG_BULK:
162+ case PACKET_MSG_LONG:
163+ case PACKET_MSG_SHORT:
164+ case PACKET_CP_DMA:
165+ case PACKET_REPEAT:
166+ case PACKET_MSG_PROT:
167+ case PACKET_FENCE:
168+ case PACKET_LIN_DMA:
169+ case PACKET_NOP:
170+ case PACKET_STOP:
171+ case PACKET_ARB_POINT:
172+ case PACKET_WAIT:
173+ case PACKET_LOAD_AND_EXE:
174+ return true;
175+ default:
176+ return false;
177+ }
178+}
179+
157180 static const char * const
158181 gaudi_tpc_interrupts_cause[GAUDI_NUM_OF_TPC_INTR_CAUSE] = {
159182 "tpc_address_exceed_slm",
@@ -433,7 +456,7 @@ static int gaudi_get_fixed_properties(struct hl_device *hdev) · 273 unmodified lines
433456 prop->num_of_events = GAUDI_EVENT_SIZE;
434457 prop->tpc_enabled_mask = TPC_ENABLED_MASK;
435458
436− prop->max_power_default = MAX_POWER_DEFAULT;
459+ prop->max_power_default = MAX_POWER_DEFAULT_PCI;
437460
438461 prop->cb_pool_cb_cnt = GAUDI_CB_POOL_CB_CNT;
439462 prop->cb_pool_cb_size = GAUDI_CB_POOL_CB_SIZE;
@@ -2485,6 +2508,7 @@ static void gaudi_set_clock_gating(struct hl_device *hdev) · 2045 unmodified lines
24852508 {
24862509 struct gaudi_device *gaudi = hdev->asic_specific;
24872510 u32 qman_offset;
2511+ bool enable;
24882512 int i;
24892513
24902514 /* In case we are during debug session, don't enable the clock gate
@@ -2494,46 +2518,43 @@ static void gaudi_set_clock_gating(struct hl_device *hdev) · 3 unmodified lines
24942518 return;
24952519
24962520 for (i = GAUDI_PCI_DMA_1, qman_offset = 0 ; i < GAUDI_HBM_DMA_1 ; i++) {
2497− if (!(hdev->clock_gating_mask &
2498− (BIT_ULL(gaudi_dma_assignment[i]))))
2499− continue;
2521+ enable = !!(hdev->clock_gating_mask &
2522+ (BIT_ULL(gaudi_dma_assignment[i])));
25002523
25012524 qman_offset = gaudi_dma_assignment[i] * DMA_QMAN_OFFSET;
2502− WREG32(mmDMA0_QM_CGM_CFG1 + qman_offset, QMAN_CGM1_PWR_GATE_EN);
2525+ WREG32(mmDMA0_QM_CGM_CFG1 + qman_offset,
2526+ enable ? QMAN_CGM1_PWR_GATE_EN : 0);
25032527 WREG32(mmDMA0_QM_CGM_CFG + qman_offset,
2504− QMAN_UPPER_CP_CGM_PWR_GATE_EN);
2528+ enable ? QMAN_UPPER_CP_CGM_PWR_GATE_EN : 0);
25052529 }
25062530
25072531 for (i = GAUDI_HBM_DMA_1 ; i < GAUDI_DMA_MAX ; i++) {
2508− if (!(hdev->clock_gating_mask &
2509− (BIT_ULL(gaudi_dma_assignment[i]))))
2510− continue;
2532+ enable = !!(hdev->clock_gating_mask &
2533+ (BIT_ULL(gaudi_dma_assignment[i])));
25112534
25122535 qman_offset = gaudi_dma_assignment[i] * DMA_QMAN_OFFSET;
2513− WREG32(mmDMA0_QM_CGM_CFG1 + qman_offset, QMAN_CGM1_PWR_GATE_EN);
2536+ WREG32(mmDMA0_QM_CGM_CFG1 + qman_offset,
2537+ enable ? QMAN_CGM1_PWR_GATE_EN : 0);
25142538 WREG32(mmDMA0_QM_CGM_CFG + qman_offset,
2515− QMAN_COMMON_CP_CGM_PWR_GATE_EN);
2539+ enable ? QMAN_COMMON_CP_CGM_PWR_GATE_EN : 0);
25162540 }
25172541
2518− if (hdev->clock_gating_mask & (BIT_ULL(GAUDI_ENGINE_ID_MME_0))) {
2519− WREG32(mmMME0_QM_CGM_CFG1, QMAN_CGM1_PWR_GATE_EN);
2520− WREG32(mmMME0_QM_CGM_CFG, QMAN_COMMON_CP_CGM_PWR_GATE_EN);
2521− }
2542+ enable = !!(hdev->clock_gating_mask & (BIT_ULL(GAUDI_ENGINE_ID_MME_0)));
2543+ WREG32(mmMME0_QM_CGM_CFG1, enable ? QMAN_CGM1_PWR_GATE_EN : 0);
2544+ WREG32(mmMME0_QM_CGM_CFG, enable ? QMAN_COMMON_CP_CGM_PWR_GATE_EN : 0);
25222545
2523− if (hdev->clock_gating_mask & (BIT_ULL(GAUDI_ENGINE_ID_MME_2))) {
2524− WREG32(mmMME2_QM_CGM_CFG1, QMAN_CGM1_PWR_GATE_EN);
2525− WREG32(mmMME2_QM_CGM_CFG, QMAN_COMMON_CP_CGM_PWR_GATE_EN);
2526− }
2546+ enable = !!(hdev->clock_gating_mask & (BIT_ULL(GAUDI_ENGINE_ID_MME_2)));
2547+ WREG32(mmMME2_QM_CGM_CFG1, enable ? QMAN_CGM1_PWR_GATE_EN : 0);
2548+ WREG32(mmMME2_QM_CGM_CFG, enable ? QMAN_COMMON_CP_CGM_PWR_GATE_EN : 0);
25272549
25282550 for (i = 0, qman_offset = 0 ; i < TPC_NUMBER_OF_ENGINES ; i++) {
2529− if (!(hdev->clock_gating_mask &
2530− (BIT_ULL(GAUDI_ENGINE_ID_TPC_0 + i))))
2531− continue;
2551+ enable = !!(hdev->clock_gating_mask &
2552+ (BIT_ULL(GAUDI_ENGINE_ID_TPC_0 + i)));
25322553
25332554 WREG32(mmTPC0_QM_CGM_CFG1 + qman_offset,
2534− QMAN_CGM1_PWR_GATE_EN);
2555+ enable ? QMAN_CGM1_PWR_GATE_EN : 0);
25352556 WREG32(mmTPC0_QM_CGM_CFG + qman_offset,
2536− QMAN_COMMON_CP_CGM_PWR_GATE_EN);
2557+ enable ? QMAN_COMMON_CP_CGM_PWR_GATE_EN : 0);
25372558
25382559 qman_offset += TPC_QMAN_OFFSET;
25392560 }
@@ -3772,6 +3793,12 @@ static int gaudi_validate_cb(struct hl_device *hdev, · 1232 unmodified lines
37723793 PACKET_HEADER_PACKET_ID_MASK) >>
37733794 PACKET_HEADER_PACKET_ID_SHIFT);
37743795
3796+ if (!validate_packet_id(pkt_id)) {
3797+ dev_err(hdev->dev, "Invalid packet id %u\n", pkt_id);
3798+ rc = -EINVAL;
3799+ break;
3800+ }
3801+
37753802 pkt_size = gaudi_packet_sizes[pkt_id];
37763803 cb_parsed_length += pkt_size;
37773804 if (cb_parsed_length > parser->user_cb_size) {
@@ -3995,6 +4022,12 @@ static int gaudi_patch_cb(struct hl_device *hdev, · 217 unmodified lines
39954022 PACKET_HEADER_PACKET_ID_MASK) >>
39964023 PACKET_HEADER_PACKET_ID_SHIFT);
39974024
4025+ if (!validate_packet_id(pkt_id)) {
4026+ dev_err(hdev->dev, "Invalid packet id %u\n", pkt_id);
4027+ rc = -EINVAL;
4028+ break;
4029+ }
4030+
39984031 pkt_size = gaudi_packet_sizes[pkt_id];
39994032 cb_parsed_length += pkt_size;
40004033 if (cb_parsed_length > parser->user_cb_size) {
@@ -5215,7 +5248,7 @@ static int gaudi_extract_ecc_info(struct hl_device *hdev, · 1214 unmodified lines
52155248 *memory_wrapper_idx = 0xFF;
52165249
52175250 /* Iterate through memory wrappers, a single bit must be set */
5218− for (i = 0 ; i > num_mem_regs ; i++) {
5251+ for (i = 0 ; i < num_mem_regs ; i++) {
52195252 err_addr += i * 4;
52205253 err_word = RREG32(err_addr);
52215254 if (err_word) {
@@ -6022,6 +6055,15 @@ static int gaudi_armcp_info_get(struct hl_device *hdev) · 800 unmodified lines
60226055 strncpy(prop->armcp_info.card_name, GAUDI_DEFAULT_CARD_NAME,
60236056 CARD_NAME_MAX_LEN);
60246057
6058+ hdev->card_type = le32_to_cpu(hdev->asic_prop.armcp_info.card_type);
6059+
6060+ if (hdev->card_type == armcp_card_type_pci)
6061+ prop->max_power_default = MAX_POWER_DEFAULT_PCI;
6062+ else if (hdev->card_type == armcp_card_type_pmc)
6063+ prop->max_power_default = MAX_POWER_DEFAULT_PMC;
6064+
6065+ hdev->max_power = prop->max_power_default;
6066+
60256067 return 0;
60266068 }
60276069
drivers/misc/habanalabs/gaudi/gaudiP.h+2−1
@@ -41,7 +41,8 @@ · 40 unmodified lines
4141
4242 #define GAUDI_MAX_CLK_FREQ 2200000000ull /* 2200 MHz */
4343
44−#define MAX_POWER_DEFAULT 200000 /* 200W */
44+#define MAX_POWER_DEFAULT_PCI 200000 /* 200W */
45+#define MAX_POWER_DEFAULT_PMC 350000 /* 350W */
4546
4647 #define GAUDI_CPU_TIMEOUT_USEC 15000000 /* 15s */
4748
drivers/misc/habanalabs/gaudi/gaudi_coresight.c+7−1
@@ -527,7 +527,7 @@ static int gaudi_config_etf(struct hl_device *hdev, · 526 unmodified lines
527527 }
528528
529529 static bool gaudi_etr_validate_address(struct hl_device *hdev, u64 addr,
530− u32 size, bool *is_host)
530+ u64 size, bool *is_host)
531531 {
532532 struct asic_fixed_properties *prop = &hdev->asic_prop;
533533 struct gaudi_device *gaudi = hdev->asic_specific;
@@ -539,6 +539,12 @@ static bool gaudi_etr_validate_address(struct hl_device *hdev, u64 addr, · 5 unmodified lines
539539 return false;
540540 }
541541
542+ if (addr > (addr + size)) {
543+ dev_err(hdev->dev,
544+ "ETR buffer size %llu overflow\n", size);
545+ return false;
546+ }
547+
542548 /* PMMU and HPMMU addresses are equal, check only one of them */
543549 if ((gaudi->hw_cap_initialized & HW_CAP_MMU) &&
544550 hl_mem_area_inside_range(addr, size,
drivers/misc/habanalabs/goya/goya.c+31−0
@@ -139,6 +139,25 @@ static u16 goya_packet_sizes[MAX_PACKET_ID] = { · 138 unmodified lines
139139 [PACKET_STOP] = sizeof(struct packet_stop)
140140 };
141141
142+static inline bool validate_packet_id(enum packet_id id)
143+{
144+ switch (id) {
145+ case PACKET_WREG_32:
146+ case PACKET_WREG_BULK:
147+ case PACKET_MSG_LONG:
148+ case PACKET_MSG_SHORT:
149+ case PACKET_CP_DMA:
150+ case PACKET_MSG_PROT:
151+ case PACKET_FENCE:
152+ case PACKET_LIN_DMA:
153+ case PACKET_NOP:
154+ case PACKET_STOP:
155+ return true;
156+ default:
157+ return false;
158+ }
159+}
160+
142161 static u64 goya_mmu_regs[GOYA_MMU_REGS_NUM] = {
143162 mmDMA_QM_0_GLBL_NON_SECURE_PROPS,
144163 mmDMA_QM_1_GLBL_NON_SECURE_PROPS,
@@ -3455,6 +3474,12 @@ static int goya_validate_cb(struct hl_device *hdev, · 3310 unmodified lines
34553474 PACKET_HEADER_PACKET_ID_MASK) >>
34563475 PACKET_HEADER_PACKET_ID_SHIFT);
34573476
3477+ if (!validate_packet_id(pkt_id)) {
3478+ dev_err(hdev->dev, "Invalid packet id %u\n", pkt_id);
3479+ rc = -EINVAL;
3480+ break;
3481+ }
3482+
34583483 pkt_size = goya_packet_sizes[pkt_id];
34593484 cb_parsed_length += pkt_size;
34603485 if (cb_parsed_length > parser->user_cb_size) {
@@ -3690,6 +3715,12 @@ static int goya_patch_cb(struct hl_device *hdev, · 229 unmodified lines
36903715 PACKET_HEADER_PACKET_ID_MASK) >>
36913716 PACKET_HEADER_PACKET_ID_SHIFT);
36923717
3718+ if (!validate_packet_id(pkt_id)) {
3719+ dev_err(hdev->dev, "Invalid packet id %u\n", pkt_id);
3720+ rc = -EINVAL;
3721+ break;
3722+ }
3723+
36933724 pkt_size = goya_packet_sizes[pkt_id];
36943725 cb_parsed_length += pkt_size;
36953726 if (cb_parsed_length > parser->user_cb_size) {
drivers/misc/habanalabs/goya/goya_coresight.c+7−1
@@ -362,11 +362,17 @@ static int goya_config_etf(struct hl_device *hdev, · 361 unmodified lines
362362 }
363363
364364 static int goya_etr_validate_address(struct hl_device *hdev, u64 addr,
365− u32 size)
365+ u64 size)
366366 {
367367 struct asic_fixed_properties *prop = &hdev->asic_prop;
368368 u64 range_start, range_end;
369369
370+ if (addr > (addr + size)) {
371+ dev_err(hdev->dev,
372+ "ETR buffer size %llu overflow\n", size);
373+ return false;
374+ }
375+
370376 if (hdev->mmu_enable) {
371377 range_start = prop->dmmu.start_addr;
372378 range_end = prop->dmmu.end_addr;
drivers/misc/mei/hdcp/mei_hdcp.c+24−16
@@ -546,38 +546,46 @@ static int mei_hdcp_verify_mprime(struct device *dev, · 545 unmodified lines
546546 struct hdcp_port_data *data,
547547 struct hdcp2_rep_stream_ready *stream_ready)
548548 {
549− struct wired_cmd_repeater_auth_stream_req_in
550− verify_mprime_in = { { 0 } };
549+ struct wired_cmd_repeater_auth_stream_req_in *verify_mprime_in;
551550 struct wired_cmd_repeater_auth_stream_req_out
552551 verify_mprime_out = { { 0 } };
553552 struct mei_cl_device *cldev;
554553 ssize_t byte;
554+ size_t cmd_size;
555555
556556 if (!dev || !stream_ready || !data)
557557 return -EINVAL;
558558
559559 cldev = to_mei_cl_device(dev);
560560
561− verify_mprime_in.header.api_version = HDCP_API_VERSION;
562− verify_mprime_in.header.command_id = WIRED_REPEATER_AUTH_STREAM_REQ;
563− verify_mprime_in.header.status = ME_HDCP_STATUS_SUCCESS;
564− verify_mprime_in.header.buffer_len =
561+ cmd_size = struct_size(verify_mprime_in, streams, data->k);
562+ if (cmd_size == SIZE_MAX)
563+ return -EINVAL;
564+
565+ verify_mprime_in = kzalloc(cmd_size, GFP_KERNEL);
566+ if (!verify_mprime_in)
567+ return -ENOMEM;
568+
569+ verify_mprime_in->header.api_version = HDCP_API_VERSION;
570+ verify_mprime_in->header.command_id = WIRED_REPEATER_AUTH_STREAM_REQ;
571+ verify_mprime_in->header.status = ME_HDCP_STATUS_SUCCESS;
572+ verify_mprime_in->header.buffer_len =
565573 WIRED_CMD_BUF_LEN_REPEATER_AUTH_STREAM_REQ_MIN_IN;
566574
567− verify_mprime_in.port.integrated_port_type = data->port_type;
568− verify_mprime_in.port.physical_port = (u8)data->fw_ddi;
569− verify_mprime_in.port.attached_transcoder = (u8)data->fw_tc;
575+ verify_mprime_in->port.integrated_port_type = data->port_type;
576+ verify_mprime_in->port.physical_port = (u8)data->fw_ddi;
577+ verify_mprime_in->port.attached_transcoder = (u8)data->fw_tc;
578+
579+ memcpy(verify_mprime_in->m_prime, stream_ready->m_prime, HDCP_2_2_MPRIME_LEN);
580+ drm_hdcp_cpu_to_be24(verify_mprime_in->seq_num_m, data->seq_num_m);
570581
571− memcpy(verify_mprime_in.m_prime, stream_ready->m_prime,
572− HDCP_2_2_MPRIME_LEN);
573− drm_hdcp_cpu_to_be24(verify_mprime_in.seq_num_m, data->seq_num_m);
574− memcpy(verify_mprime_in.streams, data->streams,
582+ memcpy(verify_mprime_in->streams, data->streams,
575583 array_size(data->k, sizeof(*data->streams)));
576584
577− verify_mprime_in.k = cpu_to_be16(data->k);
585+ verify_mprime_in->k = cpu_to_be16(data->k);
578586
579− byte = mei_cldev_send(cldev, (u8 *)&verify_mprime_in,
580− sizeof(verify_mprime_in));
587+ byte = mei_cldev_send(cldev, (u8 *)verify_mprime_in, cmd_size);
588+ kfree(verify_mprime_in);
581589 if (byte < 0) {
582590 dev_dbg(dev, "mei_cldev_send failed. %zd\n", byte);
583591 return byte;
drivers/misc/mic/scif/scif_api.c+2−2
@@ -178,7 +178,7 @@ int scif_close(scif_epd_t epd) · 177 unmodified lines
178178 case SCIFEP_ZOMBIE:
179179 dev_err(scif_info.mdev.this_device,
180180 "SCIFAPI close: zombie state unexpected\n");
181− /* fall through */
181+ fallthrough;
182182 case SCIFEP_DISCONNECTED:
183183 spin_unlock(&ep->lock);
184184 scif_unregister_all_windows(epd);
@@ -645,7 +645,7 @@ int __scif_connect(scif_epd_t epd, struct scif_port_id *dst, bool non_block) · 460 unmodified lines
645645 ep->port.port = err;
646646 ep->port.node = scif_info.nodeid;
647647 ep->conn_async_state = ASYNC_CONN_IDLE;
648− /* Fall through */
648+ fallthrough;
649649 case SCIFEP_BOUND:
650650 /*
651651 * If a non-blocking connect has been already initiated
drivers/misc/mic/scif/scif_rma.c+1−1
@@ -657,7 +657,7 @@ int scif_unregister_window(struct scif_window *window) · 656 unmodified lines
657657 window->unreg_state = OP_IN_PROGRESS;
658658 send_msg = true;
659659 }
660− /* fall through */
660+ fallthrough;
661661 case OP_IN_PROGRESS:
662662 {
663663 scif_get_window(window, 1);
drivers/misc/sgi-gru/grukservices.c+2−2
@@ -622,7 +622,7 @@ static int send_noop_message(void *cb, struct gru_message_queue_desc *mqd, · 621 unmodified lines
622622 break;
623623 case CBSS_PAGE_OVERFLOW:
624624 STAT(mesq_noop_page_overflow);
625− /* fall through */
625+ fallthrough;
626626 default:
627627 BUG();
628628 }
@@ -780,7 +780,7 @@ static int send_message_failure(void *cb, struct gru_message_queue_desc *mqd, · 151 unmodified lines
780780 break;
781781 case CBSS_PAGE_OVERFLOW:
782782 STAT(mesq_page_overflow);
783− /* fall through */
783+ fallthrough;
784784 default:
785785 BUG();
786786 }
drivers/misc/sgi-xp/xpc_main.c+2−2
@@ -1173,7 +1173,7 @@ xpc_system_die(struct notifier_block *nb, unsigned long event, void *_die_args) · 1172 unmodified lines
11731173 if (!xpc_kdebug_ignore)
11741174 break;
11751175
1176− /* fall through */
1176+ fallthrough;
11771177 case DIE_MCA_MONARCH_ENTER:
11781178 case DIE_INIT_MONARCH_ENTER:
11791179 xpc_arch_ops.offline_heartbeat();
@@ -1184,7 +1184,7 @@ xpc_system_die(struct notifier_block *nb, unsigned long event, void *_die_args) · 4 unmodified lines
11841184 if (!xpc_kdebug_ignore)
11851185 break;
11861186
1187− /* fall through */
1187+ fallthrough;
11881188 case DIE_MCA_MONARCH_LEAVE:
11891189 case DIE_INIT_MONARCH_LEAVE:
11901190 xpc_arch_ops.online_heartbeat();
drivers/misc/sgi-xp/xpc_partition.c+2−2
@@ -441,10 +441,10 @@ xpc_discovery(void) · 440 unmodified lines
441441 switch (region_size) {
442442 case 128:
443443 max_regions *= 2;
444− /* fall through */
444+ fallthrough;
445445 case 64:
446446 max_regions *= 2;
447− /* fall through */
447+ fallthrough;
448448 case 32:
449449 max_regions *= 2;
450450 region_size = 16;
drivers/misc/sgi-xp/xpc_uv.c+1−1
@@ -574,7 +574,7 @@ xpc_handle_activate_mq_msg_uv(struct xpc_partition *part, · 573 unmodified lines
574574
575575 xpc_wakeup_channel_mgr(part);
576576 }
577− /* fall through */
577+ fallthrough;
578578 case XPC_ACTIVATE_MQ_MSG_MARK_ENGAGED_UV:
579579 spin_lock_irqsave(&part_uv->flags_lock, irq_flags);
580580 part_uv->flags |= XPC_P_ENGAGED_UV;
drivers/mmc/core/host.c+1−1
@@ -191,7 +191,7 @@ int mmc_of_parse(struct mmc_host *host) · 190 unmodified lines
191191 switch (bus_width) {
192192 case 8:
193193 host->caps |= MMC_CAP_8_BIT_DATA;
194− /* fall through - Hosts capable of 8-bit can also do 4 bits */
194+ fallthrough; /* Hosts capable of 8-bit can also do 4 bits */
195195 case 4:
196196 host->caps |= MMC_CAP_4_BIT_DATA;
197197 break;
drivers/mmc/host/atmel-mci.c+4−4
@@ -2418,7 +2418,7 @@ static void atmci_get_cap(struct atmel_mci *host) · 2417 unmodified lines
24182418 case 0x600:
24192419 case 0x500:
24202420 host->caps.has_odd_clk_div = 1;
2421− /* Fall through */
2421+ fallthrough;
24222422 case 0x400:
24232423 case 0x300:
24242424 host->caps.has_dma_conf_reg = 1;
@@ -2426,16 +2426,16 @@ static void atmci_get_cap(struct atmel_mci *host) · 1 unmodified line
24262426 host->caps.has_cfg_reg = 1;
24272427 host->caps.has_cstor_reg = 1;
24282428 host->caps.has_highspeed = 1;
2429− /* Fall through */
2429+ fallthrough;
24302430 case 0x200:
24312431 host->caps.has_rwproof = 1;
24322432 host->caps.need_blksz_mul_4 = 0;
24332433 host->caps.need_notbusy_for_read_ops = 1;
2434− /* Fall through */
2434+ fallthrough;
24352435 case 0x100:
24362436 host->caps.has_bad_data_ordering = 0;
24372437 host->caps.need_reset_after_xfer = 0;
2438− /* Fall through */
2438+ fallthrough;
24392439 case 0x0:
24402440 break;
24412441 default:
drivers/mmc/host/davinci_mmc.c+1−1
@@ -300,7 +300,7 @@ static void mmc_davinci_start_command(struct mmc_davinci_host *host, · 299 unmodified lines
300300 * then it's harmless for us to allow it.
301301 */
302302 cmd_reg |= MMCCMD_BSYEXP;
303− /* FALLTHROUGH */
303+ fallthrough;
304304 case MMC_RSP_R1: /* 48 bits, CRC */
305305 cmd_reg |= MMCCMD_RSPFMT_R1456;
306306 break;
drivers/mmc/host/dw_mmc-k3.c+1−1
@@ -238,7 +238,7 @@ static void dw_mci_hs_set_timing(struct dw_mci *host, int timing, · 237 unmodified lines
238238 if (smpl_phase >= USE_DLY_MIN_SMPL &&
239239 smpl_phase <= USE_DLY_MAX_SMPL)
240240 use_smpl_dly = 1;
241− /* fallthrough */
241+ fallthrough;
242242 case MMC_TIMING_UHS_SDR50:
243243 if (smpl_phase >= ENABLE_SHIFT_MIN_SMPL &&
244244 smpl_phase <= ENABLE_SHIFT_MAX_SMPL)
drivers/mmc/host/dw_mmc.c+3−3
@@ -2030,7 +2030,7 @@ static void dw_mci_tasklet_func(unsigned long priv) · 2029 unmodified lines
20302030 }
20312031
20322032 prev_state = state = STATE_SENDING_DATA;
2033− /* fall through */
2033+ fallthrough;
20342034
20352035 case STATE_SENDING_DATA:
20362036 /*
@@ -2088,7 +2088,7 @@ static void dw_mci_tasklet_func(unsigned long priv) · 51 unmodified lines
20882088 }
20892089 prev_state = state = STATE_DATA_BUSY;
20902090
2091− /* fall through */
2091+ fallthrough;
20922092
20932093 case STATE_DATA_BUSY:
20942094 if (!dw_mci_clear_pending_data_complete(host)) {
@@ -2141,7 +2141,7 @@ static void dw_mci_tasklet_func(unsigned long priv) · 46 unmodified lines
21412141 */
21422142 prev_state = state = STATE_SENDING_STOP;
21432143
2144− /* fall through */
2144+ fallthrough;
21452145
21462146 case STATE_SENDING_STOP:
21472147 if (!dw_mci_clear_pending_cmd_complete(host))
drivers/mmc/host/jz4740_mmc.c+2−2
@@ -739,7 +739,7 @@ static irqreturn_t jz_mmc_irq_worker(int irq, void *devid) · 738 unmodified lines
739739 break;
740740
741741 jz_mmc_prepare_data_transfer(host);
742− /* fall through */
742+ fallthrough;
743743
744744 case JZ4740_MMC_STATE_TRANSFER_DATA:
745745 if (host->use_dma) {
@@ -774,7 +774,7 @@ static irqreturn_t jz_mmc_irq_worker(int irq, void *devid) · 28 unmodified lines
774774 break;
775775 }
776776 jz4740_mmc_write_irq_reg(host, JZ_MMC_IRQ_DATA_TRAN_DONE);
777− /* fall through */
777+ fallthrough;
778778
779779 case JZ4740_MMC_STATE_SEND_STOP:
780780 if (!req->stop)
drivers/mmc/host/meson-mx-sdio.c+1−1
@@ -294,7 +294,7 @@ static void meson_mx_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) · 293 unmodified lines
294294 switch (ios->power_mode) {
295295 case MMC_POWER_OFF:
296296 vdd = 0;
297− /* fall through */
297+ fallthrough;
298298 case MMC_POWER_UP:
299299 if (!IS_ERR(mmc->supply.vmmc)) {
300300 host->error = mmc_regulator_set_ocr(mmc,
drivers/mmc/host/renesas_sdhi_core.c+1−1
@@ -685,7 +685,7 @@ static int renesas_sdhi_write16_hook(struct tmio_mmc_host *host, int addr) · 684 unmodified lines
685685 case HOST_MODE:
686686 if (host->pdata->flags & TMIO_MMC_HAVE_CBSY)
687687 bit = TMIO_STAT_CMD_BUSY;
688− /* fallthrough */
688+ fallthrough;
689689 case CTL_SD_CARD_CLK_CTL:
690690 return renesas_sdhi_wait_idle(host, bit);
691691 }
drivers/mmc/host/sdhci-esdhc-imx.c+1−1
@@ -1556,7 +1556,7 @@ static int sdhci_esdhc_imx_probe_nondt(struct platform_device *pdev, · 1555 unmodified lines
15561556 "failed to request card-detect gpio!\n");
15571557 return err;
15581558 }
1559− /* fall through */
1559+ fallthrough;
15601560
15611561 case ESDHC_CD_CONTROLLER:
15621562 /* we have a working card_detect back */
drivers/mmc/host/sdhci-s3c.c+1−1
@@ -609,7 +609,7 @@ static int sdhci_s3c_probe(struct platform_device *pdev) · 608 unmodified lines
609609 switch (pdata->max_width) {
610610 case 8:
611611 host->mmc->caps |= MMC_CAP_8_BIT_DATA;
612− /* Fall through */
612+ fallthrough;
613613 case 4:
614614 host->mmc->caps |= MMC_CAP_4_BIT_DATA;
615615 break;
drivers/mmc/host/sdhci-sprd.c+1−1
@@ -470,7 +470,7 @@ static int sdhci_sprd_voltage_switch(struct mmc_host *mmc, struct mmc_ios *ios) · 469 unmodified lines
470470 break;
471471
472472 default:
473− /* fall-through */
473+ fallthrough;
474474 case MMC_SIGNAL_VOLTAGE_330:
475475 ret = pinctrl_select_state(sprd_host->pinctrl,
476476 sprd_host->pins_default);
drivers/mmc/host/sdhci-xenon-phy.c+1−1
@@ -527,7 +527,7 @@ static bool xenon_emmc_phy_slow_mode(struct sdhci_host *host, · 526 unmodified lines
527527 ret = true;
528528 break;
529529 }
530− /* fall through */
530+ fallthrough;
531531 default:
532532 reg &= ~XENON_TIMING_ADJUST_SLOW_MODE;
533533 ret = false;
drivers/mmc/host/sdhci.c+1−1
@@ -2825,7 +2825,7 @@ int sdhci_execute_tuning(struct mmc_host *mmc, u32 opcode) · 2824 unmodified lines
28252825 case MMC_TIMING_UHS_SDR50:
28262826 if (host->flags & SDHCI_SDR50_NEEDS_TUNING)
28272827 break;
2828− /* FALLTHROUGH */
2828+ fallthrough;
28292829
28302830 default:
28312831 goto out;
drivers/mmc/host/tifm_sd.c+1−1
@@ -335,7 +335,7 @@ static unsigned int tifm_sd_op_flags(struct mmc_command *cmd) · 334 unmodified lines
335335 break;
336336 case MMC_RSP_R1B:
337337 rc |= TIFM_MMCSD_RSP_BUSY;
338− /* fall-through */
338+ fallthrough;
339339 case MMC_RSP_R1:
340340 rc |= TIFM_MMCSD_RSP_R1;
341341 break;
drivers/mmc/host/usdhi6rol0.c+3−3
@@ -1343,7 +1343,7 @@ static int usdhi6_stop_cmd(struct usdhi6_host *host) · 1342 unmodified lines
13431343 host->wait = USDHI6_WAIT_FOR_STOP;
13441344 return 0;
13451345 }
1346− /* fall through - Unsupported STOP command. */
1346+ fallthrough; /* Unsupported STOP command */
13471347 default:
13481348 dev_err(mmc_dev(host->mmc),
13491349 "unsupported stop CMD%d for CMD%d\n",
@@ -1691,7 +1691,7 @@ static void usdhi6_timeout_work(struct work_struct *work) · 341 unmodified lines
16911691 switch (host->wait) {
16921692 default:
16931693 dev_err(mmc_dev(host->mmc), "Invalid state %u\n", host->wait);
1694− /* fall through - mrq can be NULL, but is impossible. */
1694+ fallthrough; /* mrq can be NULL, but is impossible */
16951695 case USDHI6_WAIT_FOR_CMD:
16961696 usdhi6_error_code(host);
16971697 if (mrq)
@@ -1713,7 +1713,7 @@ static void usdhi6_timeout_work(struct work_struct *work) · 15 unmodified lines
17131713 host->offset, data->blocks, data->blksz, data->sg_len,
17141714 sg_dma_len(sg), sg->offset);
17151715 usdhi6_sg_unmap(host, true);
1716− /* fall through - page unmapped in USDHI6_WAIT_FOR_DATA_END. */
1716+ fallthrough; /* page unmapped in USDHI6_WAIT_FOR_DATA_END */
17171717 case USDHI6_WAIT_FOR_DATA_END:
17181718 usdhi6_error_code(host);
17191719 data->error = -ETIMEDOUT;
drivers/mux/adgs1408.c+1−1
@@ -93,7 +93,7 @@ static int adgs1408_probe(struct spi_device *spi) · 92 unmodified lines
9393 mux->idle_state = idle_state;
9494 break;
9595 }
96− /* fall through */
96+ fallthrough;
9797 default:
9898 dev_err(dev, "invalid idle-state %d\n", idle_state);
9999 return -EINVAL;
drivers/net/appletalk/cops.c+1−1
@@ -301,7 +301,7 @@ static int __init cops_probe1(struct net_device *dev, int ioaddr) · 300 unmodified lines
301301 dev->irq = cops_irq(ioaddr, board);
302302 if (dev->irq)
303303 break;
304− /* fall through - Once no IRQ found on this port. */
304+ fallthrough; /* Once no IRQ found on this port */
305305 case 1:
306306 retval = -EINVAL;
307307 goto err_out;
drivers/net/arcnet/arc-rimi.c+3−3
@@ -363,13 +363,13 @@ static int __init arcrimi_setup(char *s) · 362 unmodified lines
363363 switch (ints[0]) {
364364 default: /* ERROR */
365365 pr_err("Too many arguments\n");
366− /* Fall through */
366+ fallthrough;
367367 case 3: /* Node ID */
368368 node = ints[3];
369− /* Fall through */
369+ fallthrough;
370370 case 2: /* IRQ */
371371 irq = ints[2];
372− /* Fall through */
372+ fallthrough;
373373 case 1: /* IO address */
374374 io = ints[1];
375375 }
drivers/net/arcnet/com20020-isa.c+6−6
@@ -197,22 +197,22 @@ static int __init com20020isa_setup(char *s) · 196 unmodified lines
197197 switch (ints[0]) {
198198 default: /* ERROR */
199199 pr_info("Too many arguments\n");
200− /* Fall through */
200+ fallthrough;
201201 case 6: /* Timeout */
202202 timeout = ints[6];
203− /* Fall through */
203+ fallthrough;
204204 case 5: /* CKP value */
205205 clockp = ints[5];
206− /* Fall through */
206+ fallthrough;
207207 case 4: /* Backplane flag */
208208 backplane = ints[4];
209− /* Fall through */
209+ fallthrough;
210210 case 3: /* Node ID */
211211 node = ints[3];
212− /* Fall through */
212+ fallthrough;
213213 case 2: /* IRQ */
214214 irq = ints[2];
215− /* Fall through */
215+ fallthrough;
216216 case 1: /* IO address */
217217 io = ints[1];
218218 }
drivers/net/arcnet/com90io.c+2−2
@@ -363,10 +363,10 @@ static int __init com90io_setup(char *s) · 362 unmodified lines
363363 switch (ints[0]) {
364364 default: /* ERROR */
365365 pr_err("Too many arguments\n");
366− /* Fall through */
366+ fallthrough;
367367 case 2: /* IRQ */
368368 irq = ints[2];
369− /* Fall through */
369+ fallthrough;
370370 case 1: /* IO address */
371371 io = ints[1];
372372 }
drivers/net/arcnet/com90xx.c+3−3
@@ -693,13 +693,13 @@ static int __init com90xx_setup(char *s) · 692 unmodified lines
693693 switch (ints[0]) {
694694 default: /* ERROR */
695695 pr_err("Too many arguments\n");
696− /* Fall through */
696+ fallthrough;
697697 case 3: /* Mem address */
698698 shmem = ints[3];
699− /* Fall through */
699+ fallthrough;
700700 case 2: /* IRQ */
701701 irq = ints[2];
702− /* Fall through */
702+ fallthrough;
703703 case 1: /* IO address */
704704 io = ints[1];
705705 }
drivers/net/bonding/bond_3ad.c+10−9
@@ -130,7 +130,7 @@ static inline struct bonding *__get_bond_by_port(struct port *port) · 129 unmodified lines
130130
131131 /**
132132 * __get_first_agg - get the first aggregator in the bond
133− * @bond: the bond we're looking at
133+ * @port: the port we're looking at
134134 *
135135 * Return the aggregator of the first slave in @bond, or %NULL if it can't be
136136 * found.
@@ -1149,7 +1149,7 @@ static void ad_rx_machine(struct lacpdu *lacpdu, struct port *port) · 1012 unmodified lines
11491149 port->actor_oper_port_state &= ~LACP_STATE_EXPIRED;
11501150 port->sm_rx_state = AD_RX_PORT_DISABLED;
11511151
1152− /* Fall Through */
1152+ fallthrough;
11531153 case AD_RX_PORT_DISABLED:
11541154 port->sm_vars &= ~AD_PORT_MATCHED;
11551155 break;
@@ -1588,7 +1588,7 @@ static struct aggregator *ad_agg_selection_test(struct aggregator *best, · 432 unmodified lines
15881588 if (__agg_active_ports(curr) < __agg_active_ports(best))
15891589 return best;
15901590
1591− /*FALLTHROUGH*/
1591+ fallthrough;
15921592 case BOND_AD_STABLE:
15931593 case BOND_AD_BANDWIDTH:
15941594 if (__get_agg_bandwidth(curr) > __get_agg_bandwidth(best))
@@ -1626,7 +1626,7 @@ static int agg_device_up(const struct aggregator *agg) · 31 unmodified lines
16261626
16271627 /**
16281628 * ad_agg_selection_logic - select an aggregation group for a team
1629− * @aggregator: the aggregator we're looking at
1629+ * @agg: the aggregator we're looking at
16301630 * @update_slave_arr: Does slave array need update?
16311631 *
16321632 * It is assumed that only one aggregator may be selected for a team.
@@ -1810,7 +1810,7 @@ static void ad_initialize_agg(struct aggregator *aggregator) · 177 unmodified lines
18101810
18111811 /**
18121812 * ad_initialize_port - initialize a given port's parameters
1813− * @aggregator: the aggregator we're looking at
1813+ * @port: the port we're looking at
18141814 * @lacp_fast: boolean. whether fast periodic should be used
18151815 */
18161816 static void ad_initialize_port(struct port *port, int lacp_fast)
@@ -1967,6 +1967,7 @@ static void ad_marker_response_received(struct bond_marker *marker, · 150 unmodified lines
19671967 /**
19681968 * bond_3ad_initiate_agg_selection - initate aggregator selection
19691969 * @bond: bonding struct
1970+ * @timeout: timeout value to set
19701971 *
19711972 * Set the aggregation selection timer, to initiate an agg selection in
19721973 * the very near future. Called during first initialization, and during
@@ -2259,7 +2260,7 @@ void bond_3ad_update_ad_actor_settings(struct bonding *bond) · 286 unmodified lines
22592260
22602261 /**
22612262 * bond_3ad_state_machine_handler - handle state machines timeout
2262− * @bond: bonding struct to work on
2263+ * @work: work context to fetch bonding struct to work on from
22632264 *
22642265 * The state machine handling concept in this module is to check every tick
22652266 * which state machine should operate any function. The execution order is
@@ -2500,7 +2501,7 @@ void bond_3ad_adapter_speed_duplex_changed(struct slave *slave) · 234 unmodified lines
25002501 /**
25012502 * bond_3ad_handle_link_change - handle a slave's link status change indication
25022503 * @slave: slave struct to work on
2503− * @status: whether the link is now up or down
2504+ * @link: whether the link is now up or down
25042505 *
25052506 * Handle reselection of aggregator (if needed) for this port.
25062507 */
@@ -2551,7 +2552,7 @@ void bond_3ad_handle_link_change(struct slave *slave, char link) · 44 unmodified lines
25512552
25522553 /**
25532554 * bond_3ad_set_carrier - set link state for bonding master
2554− * @bond - bonding structure
2555+ * @bond: bonding structure
25552556 *
25562557 * if we have an active aggregator, we're up, if not, we're down.
25572558 * Presumes that we cannot have an active aggregator if there are
@@ -2664,7 +2665,7 @@ int bond_3ad_lacpdu_recv(const struct sk_buff *skb, struct bonding *bond, · 106 unmodified lines
26642665
26652666 /**
26662667 * bond_3ad_update_lacp_rate - change the lacp rate
2667− * @bond - bonding struct
2668+ * @bond: bonding struct
26682669 *
26692670 * When modify lacp_rate parameter via sysfs,
26702671 * update actor_oper_port_state of each port.
drivers/net/bonding/bond_alb.c+2−2
@@ -1206,8 +1206,8 @@ static int alb_handle_addr_collision_on_attach(struct bonding *bond, struct slav · 1205 unmodified lines
12061206
12071207 /**
12081208 * alb_set_mac_address
1209− * @bond:
1210− * @addr:
1209+ * @bond: bonding we're working on
1210+ * @addr: MAC address to set
12111211 *
12121212 * In TLB mode all slaves are configured to the bond's hw address, but set
12131213 * their dev_addr field to different addresses (based on their permanent hw
drivers/net/bonding/bond_main.c+43−11
@@ -322,6 +322,7 @@ netdev_tx_t bond_dev_queue_xmit(struct bonding *bond, struct sk_buff *skb, · 321 unmodified lines
322322 /**
323323 * bond_vlan_rx_add_vid - Propagates adding an id to slaves
324324 * @bond_dev: bonding net device that got called
325+ * @proto: network protocol ID
325326 * @vid: vlan id being added
326327 */
327328 static int bond_vlan_rx_add_vid(struct net_device *bond_dev,
@@ -355,6 +356,7 @@ unwind: · 27 unmodified lines
355356 /**
356357 * bond_vlan_rx_kill_vid - Propagates deleting an id to slaves
357358 * @bond_dev: bonding net device that got called
359+ * @proto: network protocol ID
358360 * @vid: vlan id being removed
359361 */
360362 static int bond_vlan_rx_kill_vid(struct net_device *bond_dev,
@@ -948,7 +950,7 @@ static bool bond_should_notify_peers(struct bonding *bond) · 587 unmodified lines
948950 /**
949951 * change_active_interface - change the active slave into the specified one
950952 * @bond: our bonding struct
951− * @new: the new slave to make the active one
953+ * @new_active: the new slave to make the active one
952954 *
953955 * Set the new slave to the bond's settings and unset them on the old
954956 * curr_active_slave.
@@ -2205,7 +2207,8 @@ static int bond_release_and_destroy(struct net_device *bond_dev, · 1250 unmodified lines
22052207 int ret;
22062208
22072209 ret = __bond_release_one(bond_dev, slave_dev, false, true);
2208− if (ret == 0 && !bond_has_slaves(bond)) {
2210+ if (ret == 0 && !bond_has_slaves(bond) &&
2211+ bond_dev->reg_state != NETREG_UNREGISTERING) {
22092212 bond_dev->priv_flags |= IFF_DISABLE_NETPOLL;
22102213 netdev_info(bond_dev, "Destroying bond\n");
22112214 bond_remove_proc_entry(bond);
@@ -2271,7 +2274,7 @@ static int bond_miimon_inspect(struct bonding *bond) · 59 unmodified lines
22712274 "active " : "backup ") : "",
22722275 bond->params.downdelay * bond->params.miimon);
22732276 }
2274− /*FALLTHRU*/
2277+ fallthrough;
22752278 case BOND_LINK_FAIL:
22762279 if (link_state) {
22772280 /* recovered before downdelay expired */
@@ -2307,7 +2310,7 @@ static int bond_miimon_inspect(struct bonding *bond) · 29 unmodified lines
23072310 bond->params.updelay *
23082311 bond->params.miimon);
23092312 }
2310− /*FALLTHRU*/
2313+ fallthrough;
23112314 case BOND_LINK_BACK:
23122315 if (!link_state) {
23132316 bond_propose_link_state(slave, BOND_LINK_DOWN);
@@ -2945,6 +2948,9 @@ static int bond_ab_arp_inspect(struct bonding *bond) · 631 unmodified lines
29452948 if (bond_time_in_interval(bond, last_rx, 1)) {
29462949 bond_propose_link_state(slave, BOND_LINK_UP);
29472950 commit++;
2951+ } else if (slave->link == BOND_LINK_BACK) {
2952+ bond_propose_link_state(slave, BOND_LINK_FAIL);
2953+ commit++;
29482954 }
29492955 continue;
29502956 }
@@ -3053,6 +3059,19 @@ static void bond_ab_arp_commit(struct bonding *bond) · 102 unmodified lines
30533059
30543060 continue;
30553061
3062+ case BOND_LINK_FAIL:
3063+ bond_set_slave_link_state(slave, BOND_LINK_FAIL,
3064+ BOND_SLAVE_NOTIFY_NOW);
3065+ bond_set_slave_inactive_flags(slave,
3066+ BOND_SLAVE_NOTIFY_NOW);
3067+
3068+ /* A slave has just been enslaved and has become
3069+ * the current active slave.
3070+ */
3071+ if (rtnl_dereference(bond->curr_active_slave))
3072+ RCU_INIT_POINTER(bond->current_arp_slave, NULL);
3073+ continue;
3074+
30563075 default:
30573076 slave_err(bond->dev, slave->dev,
30583077 "impossible: link_new_state %d on slave\n",
@@ -3103,8 +3122,6 @@ static bool bond_ab_arp_probe(struct bonding *bond) · 44 unmodified lines
31033122 return should_notify_rtnl;
31043123 }
31053124
3106− bond_set_slave_inactive_flags(curr_arp_slave, BOND_SLAVE_NOTIFY_LATER);
3107−
31083125 bond_for_each_slave_rcu(bond, slave, iter) {
31093126 if (!found && !before && bond_slave_is_up(slave))
31103127 before = slave;
@@ -3305,7 +3322,7 @@ static int bond_slave_netdev_event(unsigned long event, · 194 unmodified lines
33053322
33063323 if (BOND_MODE(bond) == BOND_MODE_8023AD)
33073324 bond_3ad_adapter_speed_duplex_changed(slave);
3308− /* Fallthrough */
3325+ fallthrough;
33093326 case NETDEV_DOWN:
33103327 /* Refresh slave-array if applicable!
33113328 * If the setup does not use miimon or arpmon (mode-specific!),
@@ -3743,7 +3760,7 @@ static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd · 431 unmodified lines
37433760 return -EINVAL;
37443761
37453762 mii->phy_id = 0;
3746− /* Fall Through */
3763+ fallthrough;
37473764 case SIOCGMIIREG:
37483765 /* We do this again just in case we were called by SIOCGMIIREG
37493766 * instead of SIOCGMIIPHY.
@@ -4552,13 +4569,23 @@ static netdev_tx_t bond_start_xmit(struct sk_buff *skb, struct net_device *dev) · 802 unmodified lines
45524569 return ret;
45534570 }
45544571
4572+static u32 bond_mode_bcast_speed(struct slave *slave, u32 speed)
4573+{
4574+ if (speed == 0 || speed == SPEED_UNKNOWN)
4575+ speed = slave->speed;
4576+ else
4577+ speed = min(speed, slave->speed);
4578+
4579+ return speed;
4580+}
4581+
45554582 static int bond_ethtool_get_link_ksettings(struct net_device *bond_dev,
45564583 struct ethtool_link_ksettings *cmd)
45574584 {
45584585 struct bonding *bond = netdev_priv(bond_dev);
4559− unsigned long speed = 0;
45604586 struct list_head *iter;
45614587 struct slave *slave;
4588+ u32 speed = 0;
45624589
45634590 cmd->base.duplex = DUPLEX_UNKNOWN;
45644591 cmd->base.port = PORT_OTHER;
@@ -4570,8 +4597,13 @@ static int bond_ethtool_get_link_ksettings(struct net_device *bond_dev, · 5 unmodified lines
45704597 */
45714598 bond_for_each_slave(bond, slave, iter) {
45724599 if (bond_slave_can_tx(slave)) {
4573− if (slave->speed != SPEED_UNKNOWN)
4574− speed += slave->speed;
4600+ if (slave->speed != SPEED_UNKNOWN) {
4601+ if (BOND_MODE(bond) == BOND_MODE_BROADCAST)
4602+ speed = bond_mode_bcast_speed(slave,
4603+ speed);
4604+ else
4605+ speed += slave->speed;
4606+ }
45754607 if (cmd->base.duplex == DUPLEX_UNKNOWN &&
45764608 slave->duplex != DUPLEX_UNKNOWN)
45774609 cmd->base.duplex = slave->duplex;
drivers/net/can/at91_can.c+2−2
@@ -898,7 +898,7 @@ static void at91_irq_err_state(struct net_device *dev, · 897 unmodified lines
898898 CAN_ERR_CRTL_TX_WARNING :
899899 CAN_ERR_CRTL_RX_WARNING;
900900 }
901− /* fall through */
901+ fallthrough;
902902 case CAN_STATE_ERROR_WARNING:
903903 /*
904904 * from: ERROR_ACTIVE, ERROR_WARNING
@@ -948,7 +948,7 @@ static void at91_irq_err_state(struct net_device *dev, · 43 unmodified lines
948948 netdev_dbg(dev, "Error Active\n");
949949 cf->can_id |= CAN_ERR_PROT;
950950 cf->data[2] = CAN_ERR_PROT_ACTIVE;
951− /* fall through */
951+ fallthrough;
952952 case CAN_STATE_ERROR_WARNING:
953953 reg_idr = AT91_IRQ_ERRA | AT91_IRQ_WARN | AT91_IRQ_BOFF;
954954 reg_ier = AT91_IRQ_ERRP;
drivers/net/can/peak_canfd/peak_pciefd_main.c+1−1
@@ -659,7 +659,7 @@ static int pciefd_can_probe(struct pciefd_board *pciefd) · 658 unmodified lines
659659 pciefd_can_writereg(priv, CANFD_CLK_SEL_80MHZ,
660660 PCIEFD_REG_CAN_CLK_SEL);
661661
662− /* fall through */
662+ fallthrough;
663663 case CANFD_CLK_SEL_80MHZ:
664664 priv->ucan.can.clock.freq = 80 * 1000 * 1000;
665665 break;
drivers/net/can/sja1000/sja1000_platform.c+1−1
@@ -150,7 +150,7 @@ static void sp_populate_of(struct sja1000_priv *priv, struct device_node *of) · 149 unmodified lines
150150 priv->read_reg = sp_read_reg16;
151151 priv->write_reg = sp_write_reg16;
152152 break;
153− case 1: /* fallthrough */
153+ case 1:
154154 default:
155155 priv->read_reg = sp_read_reg8;
156156 priv->write_reg = sp_write_reg8;
drivers/net/can/slcan.c+2−2
@@ -153,7 +153,7 @@ static void slc_bump(struct slcan *sl) · 152 unmodified lines
153153 switch (*cmd) {
154154 case 'r':
155155 cf.can_id = CAN_RTR_FLAG;
156− /* fallthrough */
156+ fallthrough;
157157 case 't':
158158 /* store dlc ASCII value and terminate SFF CAN ID string */
159159 cf.can_dlc = sl->rbuff[SLC_CMD_LEN + SLC_SFF_ID_LEN];
@@ -163,7 +163,7 @@ static void slc_bump(struct slcan *sl) · 3 unmodified lines
163163 break;
164164 case 'R':
165165 cf.can_id = CAN_RTR_FLAG;
166− /* fallthrough */
166+ fallthrough;
167167 case 'T':
168168 cf.can_id |= CAN_EFF_FLAG;
169169 /* store dlc ASCII value and terminate EFF CAN ID string */
drivers/net/can/spi/mcp251x.c+1−1
@@ -864,7 +864,7 @@ static irqreturn_t mcp251x_can_ist(int irq, void *dev_id) · 863 unmodified lines
864864 if (new_state >= CAN_STATE_ERROR_WARNING &&
865865 new_state <= CAN_STATE_BUS_OFF)
866866 priv->can.can_stats.error_warning++;
867− /* fall through */
867+ fallthrough;
868868 case CAN_STATE_ERROR_WARNING:
869869 if (new_state >= CAN_STATE_ERROR_PASSIVE &&
870870 new_state <= CAN_STATE_BUS_OFF)
drivers/net/can/usb/peak_usb/pcan_usb.c+1−1
@@ -415,7 +415,7 @@ static int pcan_usb_decode_error(struct pcan_usb_msg_context *mc, u8 n, · 414 unmodified lines
415415 new_state = CAN_STATE_ERROR_WARNING;
416416 break;
417417 }
418− /* fall through */
418+ fallthrough;
419419
420420 case CAN_STATE_ERROR_WARNING:
421421 if (n & PCAN_USB_ERROR_BUS_HEAVY) {
drivers/net/can/usb/peak_usb/pcan_usb_core.c+1−1
@@ -345,7 +345,7 @@ static netdev_tx_t peak_usb_ndo_start_xmit(struct sk_buff *skb, · 344 unmodified lines
345345 default:
346346 netdev_warn(netdev, "tx urb submitting failed err=%d\n",
347347 err);
348− /* fall through */
348+ fallthrough;
349349 case -ENOENT:
350350 /* cable unplugged */
351351 stats->tx_dropped++;
drivers/net/can/usb/peak_usb/pcan_usb_pro.c+2−2
@@ -133,10 +133,10 @@ static int pcan_msg_add_rec(struct pcan_usb_pro_msg *pm, int id, ...) · 132 unmodified lines
133133 switch (id) {
134134 case PCAN_USBPRO_TXMSG8:
135135 i += 4;
136− /* fall through */
136+ fallthrough;
137137 case PCAN_USBPRO_TXMSG4:
138138 i += 4;
139− /* fall through */
139+ fallthrough;
140140 case PCAN_USBPRO_TXMSG0:
141141 *pc++ = va_arg(ap, int);
142142 *pc++ = va_arg(ap, int);
drivers/net/dsa/b53/b53_common.c+3−1
@@ -1061,7 +1061,7 @@ static void b53_force_port_config(struct b53_device *dev, int port, · 1060 unmodified lines
10611061 switch (speed) {
10621062 case 2000:
10631063 reg |= PORT_OVERRIDE_SPEED_2000M;
1064− /* fallthrough */
1064+ fallthrough;
10651065 case SPEED_1000:
10661066 reg |= PORT_OVERRIDE_SPEED_1000M;
10671067 break;
@@ -1554,6 +1554,8 @@ static int b53_arl_op(struct b53_device *dev, int op, int port, · 486 unmodified lines
15541554 return ret;
15551555
15561556 switch (ret) {
1557+ case -ETIMEDOUT:
1558+ return ret;
15571559 case -ENOSPC:
15581560 dev_dbg(dev->dev, "{%pM,%.4d} no space left in ARL\n",
15591561 addr, vid);
drivers/net/dsa/b53/b53_serdes.c+1−1
@@ -170,7 +170,7 @@ void b53_serdes_phylink_validate(struct b53_device *dev, int port, · 169 unmodified lines
170170 switch (lane) {
171171 case 0:
172172 phylink_set(supported, 2500baseX_Full);
173− /* fallthrough */
173+ fallthrough;
174174 case 1:
175175 phylink_set(supported, 1000baseX_Full);
176176 break;
drivers/net/dsa/bcm_sf2.c+1−1
@@ -566,7 +566,7 @@ static void bcm_sf2_sw_mac_config(struct dsa_switch *ds, int port, · 565 unmodified lines
566566 switch (state->interface) {
567567 case PHY_INTERFACE_MODE_RGMII:
568568 id_mode_dis = 1;
569− /* fallthrough */
569+ fallthrough;
570570 case PHY_INTERFACE_MODE_RGMII_TXID:
571571 port_mode = EXT_GPHY;
572572 break;
drivers/net/dsa/microchip/ksz9477.c+1−1
@@ -1083,7 +1083,7 @@ static phy_interface_t ksz9477_get_interface(struct ksz_device *dev, int port) · 1082 unmodified lines
10831083 interface = PHY_INTERFACE_MODE_GMII;
10841084 if (gbit)
10851085 break;
1086− /* fall through */
1086+ fallthrough;
10871087 case 0:
10881088 interface = PHY_INTERFACE_MODE_MII;
10891089 break;
drivers/net/dsa/mt7530.c+1−1
@@ -566,7 +566,7 @@ static void mt7530_setup_port5(struct dsa_switch *ds, phy_interface_t interface) · 565 unmodified lines
566566 case P5_INTF_SEL_PHY_P0:
567567 /* MT7530_P5_MODE_GPHY_P0: 2nd GMAC -> P5 -> P0 */
568568 val |= MHWTRAP_PHY0_SEL;
569− /* fall through */
569+ fallthrough;
570570 case P5_INTF_SEL_PHY_P4:
571571 /* MT7530_P5_MODE_GPHY_P4: 2nd GMAC -> P5 -> P4 */
572572 val &= ~MHWTRAP_P5_MAC_SEL & ~MHWTRAP_P5_DIS;
drivers/net/dsa/mv88e6xxx/chip.c+1−1
@@ -875,7 +875,7 @@ static uint64_t _mv88e6xxx_get_ethtool_stat(struct mv88e6xxx_chip *chip, · 874 unmodified lines
875875 break;
876876 case STATS_TYPE_BANK1:
877877 reg = bank1_select;
878− /* fall through */
878+ fallthrough;
879879 case STATS_TYPE_BANK0:
880880 reg |= s->reg | histogram;
881881 mv88e6xxx_g1_stats_read(chip, reg, &low);
drivers/net/dsa/ocelot/Kconfig+1−1
@@ -9,7 +9,7 @@ config NET_DSA_MSCC_FELIX · 8 unmodified lines
99 select NET_DSA_TAG_OCELOT
1010 select FSL_ENETC_MDIO
1111 help
12− This driver supports network switches from the the Vitesse /
12+ This driver supports network switches from the Vitesse /
1313 Microsemi / Microchip Ocelot family of switching cores that are
1414 connected to their host CPU via Ethernet.
1515 The following switches are supported:
drivers/net/ethernet/3com/3c509.c+2−2
@@ -1259,14 +1259,14 @@ el3_up(struct net_device *dev) · 1258 unmodified lines
12591259 pr_cont("Forcing 3c5x9b full-duplex mode");
12601260 break;
12611261 }
1262− /* fall through */
1262+ fallthrough;
12631263 case 8:
12641264 /* set full-duplex mode based on eeprom config setting */
12651265 if ((sw_info & 0x000f) && (sw_info & 0x8000)) {
12661266 pr_cont("Setting 3c5x9b full-duplex mode (from EEPROM configuration bit)");
12671267 break;
12681268 }
1269− /* fall through */
1269+ fallthrough;
12701270 default:
12711271 /* xcvr=(0 || 4) OR user has an old 3c5x9 non "B" model */
12721272 pr_cont("Setting 3c5x9/3c5x9B half-duplex mode");
drivers/net/ethernet/3com/3c574_cs.c+4−4
@@ -951,7 +951,7 @@ static struct net_device_stats *el3_get_stats(struct net_device *dev) · 950 unmodified lines
951951 static void update_stats(struct net_device *dev)
952952 {
953953 unsigned int ioaddr = dev->base_addr;
954− u8 rx, tx, up;
954+ u8 up;
955955
956956 pr_debug("%s: updating the statistics.\n", dev->name);
957957
@@ -972,8 +972,8 @@ static void update_stats(struct net_device *dev) · 14 unmodified lines
972972 dev->stats.tx_packets += (up&0x30) << 4;
973973 /* Rx packets */ inb(ioaddr + 7);
974974 /* Tx deferrals */ inb(ioaddr + 8);
975− rx = inw(ioaddr + 10);
976− tx = inw(ioaddr + 12);
975+ /* rx */ inw(ioaddr + 10);
976+ /* tx */ inw(ioaddr + 12);
977977
978978 EL3WINDOW(4);
979979 /* BadSSD */ inb(ioaddr + 12);
@@ -1046,7 +1046,7 @@ static int el3_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) · 66 unmodified lines
10461046 switch(cmd) {
10471047 case SIOCGMIIPHY: /* Get the address of the PHY in use. */
10481048 data->phy_id = phy;
1049− /* fall through */
1049+ fallthrough;
10501050 case SIOCGMIIREG: /* Read the specified MII register. */
10511051 {
10521052 int saved_window;
drivers/net/ethernet/8390/axnet_cs.c+2−1
@@ -610,7 +610,7 @@ static int axnet_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) · 609 unmodified lines
610610 switch (cmd) {
611611 case SIOCGMIIPHY:
612612 data->phy_id = info->phy_id;
613− /* Fall through */
613+ fallthrough;
614614 case SIOCGMIIREG: /* Read MII PHY register. */
615615 data->val_out = mdio_read(mii_addr, data->phy_id, data->reg_num & 0x1f);
616616 return 0;
@@ -898,6 +898,7 @@ static int ax_close(struct net_device *dev) · 281 unmodified lines
898898 /**
899899 * axnet_tx_timeout - handle transmit time out condition
900900 * @dev: network device which has apparently fallen asleep
901+ * @txqueue: unused
901902 *
902903 * Called by kernel when device never acknowledges a transmit has
903904 * completed (or failed) - i.e. never posted a Tx related interrupt.
drivers/net/ethernet/8390/pcnet_cs.c+1−1
@@ -1108,7 +1108,7 @@ static int ei_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) · 1107 unmodified lines
11081108 switch (cmd) {
11091109 case SIOCGMIIPHY:
11101110 data->phy_id = info->phy_id;
1111− /* fall through */
1111+ fallthrough;
11121112 case SIOCGMIIREG: /* Read MII PHY register. */
11131113 data->val_out = mdio_read(mii_addr, data->phy_id, data->reg_num & 0x1f);
11141114 return 0;
drivers/net/ethernet/alacritech/slicoss.c+6−6
@@ -1712,13 +1712,13 @@ static bool slic_is_fiber(unsigned short subdev) · 1711 unmodified lines
17121712 {
17131713 switch (subdev) {
17141714 /* Mojave */
1715− case PCI_SUBDEVICE_ID_ALACRITECH_1000X1F: /* fallthrough */
1716− case PCI_SUBDEVICE_ID_ALACRITECH_SES1001F: /* fallthrough */
1715+ case PCI_SUBDEVICE_ID_ALACRITECH_1000X1F:
1716+ case PCI_SUBDEVICE_ID_ALACRITECH_SES1001F: fallthrough;
17171717 /* Oasis */
1718− case PCI_SUBDEVICE_ID_ALACRITECH_SEN2002XF: /* fallthrough */
1719− case PCI_SUBDEVICE_ID_ALACRITECH_SEN2001XF: /* fallthrough */
1720− case PCI_SUBDEVICE_ID_ALACRITECH_SEN2104EF: /* fallthrough */
1721− case PCI_SUBDEVICE_ID_ALACRITECH_SEN2102EF: /* fallthrough */
1718+ case PCI_SUBDEVICE_ID_ALACRITECH_SEN2002XF:
1719+ case PCI_SUBDEVICE_ID_ALACRITECH_SEN2001XF:
1720+ case PCI_SUBDEVICE_ID_ALACRITECH_SEN2104EF:
1721+ case PCI_SUBDEVICE_ID_ALACRITECH_SEN2102EF:
17221722 return true;
17231723 }
17241724 return false;
drivers/net/ethernet/alteon/acenic.c+1−1
@@ -547,7 +547,7 @@ static int acenic_probe_one(struct pci_dev *pdev, · 546 unmodified lines
547547 ap->name);
548548 break;
549549 }
550− /* Fall through */
550+ fallthrough;
551551 case PCI_VENDOR_ID_SGI:
552552 printk(KERN_INFO "%s: SGI AceNIC ", ap->name);
553553 break;
drivers/net/ethernet/amazon/ena/ena_netdev.c+18−17
@@ -2180,13 +2180,10 @@ static void ena_del_napi_in_range(struct ena_adapter *adapter, · 2179 unmodified lines
21802180 int i;
21812181
21822182 for (i = first_index; i < first_index + count; i++) {
2183− /* Check if napi was initialized before */
2184− if (!ENA_IS_XDP_INDEX(adapter, i) ||
2185− adapter->ena_napi[i].xdp_ring)
2186− netif_napi_del(&adapter->ena_napi[i].napi);
2187− else
2188− WARN_ON(ENA_IS_XDP_INDEX(adapter, i) &&
2189− adapter->ena_napi[i].xdp_ring);
2183+ netif_napi_del(&adapter->ena_napi[i].napi);
2184+
2185+ WARN_ON(!ENA_IS_XDP_INDEX(adapter, i) &&
2186+ adapter->ena_napi[i].xdp_ring);
21902187 }
21912188 }
21922189
@@ -3601,16 +3598,14 @@ static void ena_fw_reset_device(struct work_struct *work) · 1408 unmodified lines
36013598 {
36023599 struct ena_adapter *adapter =
36033600 container_of(work, struct ena_adapter, reset_task);
3604− struct pci_dev *pdev = adapter->pdev;
36053601
3606− if (unlikely(!test_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags))) {
3607− dev_err(&pdev->dev,
3608− "device reset schedule while reset bit is off\n");
3609− return;
3610− }
36113602 rtnl_lock();
3612− ena_destroy_device(adapter, false);
3613− ena_restore_device(adapter);
3603+
3604+ if (likely(test_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags))) {
3605+ ena_destroy_device(adapter, false);
3606+ ena_restore_device(adapter);
3607+ }
3608+
36143609 rtnl_unlock();
36153610 }
36163611
@@ -3692,7 +3687,7 @@ static int check_missing_comp_in_tx_queue(struct ena_adapter *adapter, · 75 unmodified lines
36923687 }
36933688
36943689 u64_stats_update_begin(&tx_ring->syncp);
3695− tx_ring->tx_stats.missed_tx = missed_tx;
3690+ tx_ring->tx_stats.missed_tx += missed_tx;
36963691 u64_stats_update_end(&tx_ring->syncp);
36973692
36983693 return rc;
@@ -4389,8 +4384,11 @@ static void __ena_shutoff(struct pci_dev *pdev, bool shutdown) · 690 unmodified lines
43894384 netdev->rx_cpu_rmap = NULL;
43904385 }
43914386 #endif /* CONFIG_RFS_ACCEL */
4392− del_timer_sync(&adapter->timer_service);
43934387
4388+ /* Make sure timer and reset routine won't be called after
4389+ * freeing device resources.
4390+ */
4391+ del_timer_sync(&adapter->timer_service);
43944392 cancel_work_sync(&adapter->reset_task);
43954393
43964394 rtnl_lock(); /* lock released inside the below if-else block */
@@ -4558,6 +4556,9 @@ static void ena_keep_alive_wd(void *adapter_data, · 161 unmodified lines
45584556 tx_drops = ((u64)desc->tx_drops_high << 32) | desc->tx_drops_low;
45594557
45604558 u64_stats_update_begin(&adapter->syncp);
4559+ /* These stats are accumulated by the device, so the counters indicate
4560+ * all drops since last reset.
4561+ */
45614562 adapter->dev_stats.rx_drops = rx_drops;
45624563 adapter->dev_stats.tx_drops = tx_drops;
45634564 u64_stats_update_end(&adapter->syncp);
drivers/net/ethernet/amd/amd8111e.c+1−1
@@ -1475,7 +1475,7 @@ static int amd8111e_ioctl(struct net_device *dev , struct ifreq *ifr, int cmd) · 1474 unmodified lines
14751475 case SIOCGMIIPHY:
14761476 data->phy_id = lp->ext_phy_addr;
14771477
1478− /* fallthru */
1478+ fallthrough;
14791479 case SIOCGMIIREG:
14801480
14811481 spin_lock_irq(&lp->lock);
drivers/net/ethernet/amd/xgbe/xgbe-drv.c+3−3
@@ -1538,7 +1538,7 @@ static int xgbe_set_hwtstamp_settings(struct xgbe_prv_data *pdata, · 1537 unmodified lines
15381538 /* PTP v2, UDP, any kind of event packet */
15391539 case HWTSTAMP_FILTER_PTP_V2_L4_EVENT:
15401540 XGMAC_SET_BITS(mac_tscr, MAC_TSCR, TSVER2ENA, 1);
1541− /* Fall through - to PTP v1, UDP, any kind of event packet */
1541+ fallthrough; /* to PTP v1, UDP, any kind of event packet */
15421542 case HWTSTAMP_FILTER_PTP_V1_L4_EVENT:
15431543 XGMAC_SET_BITS(mac_tscr, MAC_TSCR, TSIPV4ENA, 1);
15441544 XGMAC_SET_BITS(mac_tscr, MAC_TSCR, TSIPV6ENA, 1);
@@ -1549,7 +1549,7 @@ static int xgbe_set_hwtstamp_settings(struct xgbe_prv_data *pdata, · 4 unmodified lines
15491549 /* PTP v2, UDP, Sync packet */
15501550 case HWTSTAMP_FILTER_PTP_V2_L4_SYNC:
15511551 XGMAC_SET_BITS(mac_tscr, MAC_TSCR, TSVER2ENA, 1);
1552− /* Fall through - to PTP v1, UDP, Sync packet */
1552+ fallthrough; /* to PTP v1, UDP, Sync packet */
15531553 case HWTSTAMP_FILTER_PTP_V1_L4_SYNC:
15541554 XGMAC_SET_BITS(mac_tscr, MAC_TSCR, TSIPV4ENA, 1);
15551555 XGMAC_SET_BITS(mac_tscr, MAC_TSCR, TSIPV6ENA, 1);
@@ -1560,7 +1560,7 @@ static int xgbe_set_hwtstamp_settings(struct xgbe_prv_data *pdata, · 4 unmodified lines
15601560 /* PTP v2, UDP, Delay_req packet */
15611561 case HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ:
15621562 XGMAC_SET_BITS(mac_tscr, MAC_TSCR, TSVER2ENA, 1);
1563− /* Fall through - to PTP v1, UDP, Delay_req packet */
1563+ fallthrough; /* to PTP v1, UDP, Delay_req packet */
15641564 case HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ:
15651565 XGMAC_SET_BITS(mac_tscr, MAC_TSCR, TSIPV4ENA, 1);
15661566 XGMAC_SET_BITS(mac_tscr, MAC_TSCR, TSIPV6ENA, 1);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c+2−2
@@ -1631,8 +1631,8 @@ static int hw_atl_b0_get_mac_temp(struct aq_hw_s *self, u32 *temp) · 1630 unmodified lines
16311631 hw_atl_ts_reset_set(self, 0);
16321632 }
16331633
1634− err = readx_poll_timeout_atomic(hw_atl_b0_ts_ready_and_latch_high_get,
1635− self, val, val == 1, 10000U, 500000U);
1634+ err = readx_poll_timeout(hw_atl_b0_ts_ready_and_latch_high_get, self,
1635+ val, val == 1, 10000U, 500000U);
16361636 if (err)
16371637 return err;
16381638
drivers/net/ethernet/broadcom/bgmac-bcma.c+1−1
@@ -217,7 +217,7 @@ static int bgmac_probe(struct bcma_device *core) · 216 unmodified lines
217217 /* BCM 471X/535X family */
218218 case BCMA_CHIP_ID_BCM4716:
219219 bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
220− /* fallthrough */
220+ fallthrough;
221221 case BCMA_CHIP_ID_BCM47162:
222222 bgmac->feature_flags |= BGMAC_FEAT_FLW_CTRL2;
223223 bgmac->feature_flags |= BGMAC_FEAT_SET_RXQ_CLK;
drivers/net/ethernet/broadcom/bgmac-platform.c+1−1
@@ -131,7 +131,7 @@ static void bgmac_nicpm_speed_set(struct net_device *net_dev) · 130 unmodified lines
131131 switch (bgmac->net_dev->phydev->speed) {
132132 default:
133133 netdev_err(net_dev, "Unsupported speed. Defaulting to 1000Mb\n");
134− /* fall through */
134+ fallthrough;
135135 case SPEED_1000:
136136 val |= NICPM_IOMUX_CTRL_SPD_1000M << NICPM_IOMUX_CTRL_SPD_SHIFT;
137137 break;
drivers/net/ethernet/broadcom/bnx2.c+7−7
@@ -1337,13 +1337,13 @@ bnx2_set_mac_link(struct bnx2 *bp) · 1336 unmodified lines
13371337 val |= BNX2_EMAC_MODE_PORT_MII_10M;
13381338 break;
13391339 }
1340− /* fall through */
1340+ fallthrough;
13411341 case SPEED_100:
13421342 val |= BNX2_EMAC_MODE_PORT_MII;
13431343 break;
13441344 case SPEED_2500:
13451345 val |= BNX2_EMAC_MODE_25G_MODE;
1346− /* fall through */
1346+ fallthrough;
13471347 case SPEED_1000:
13481348 val |= BNX2_EMAC_MODE_PORT_GMII;
13491349 break;
@@ -1995,26 +1995,26 @@ bnx2_remote_phy_event(struct bnx2 *bp) · 645 unmodified lines
19951995 switch (speed) {
19961996 case BNX2_LINK_STATUS_10HALF:
19971997 bp->duplex = DUPLEX_HALF;
1998− /* fall through */
1998+ fallthrough;
19991999 case BNX2_LINK_STATUS_10FULL:
20002000 bp->line_speed = SPEED_10;
20012001 break;
20022002 case BNX2_LINK_STATUS_100HALF:
20032003 bp->duplex = DUPLEX_HALF;
2004− /* fall through */
2004+ fallthrough;
20052005 case BNX2_LINK_STATUS_100BASE_T4:
20062006 case BNX2_LINK_STATUS_100FULL:
20072007 bp->line_speed = SPEED_100;
20082008 break;
20092009 case BNX2_LINK_STATUS_1000HALF:
20102010 bp->duplex = DUPLEX_HALF;
2011− /* fall through */
2011+ fallthrough;
20122012 case BNX2_LINK_STATUS_1000FULL:
20132013 bp->line_speed = SPEED_1000;
20142014 break;
20152015 case BNX2_LINK_STATUS_2500HALF:
20162016 bp->duplex = DUPLEX_HALF;
2017− /* fall through */
2017+ fallthrough;
20182018 case BNX2_LINK_STATUS_2500FULL:
20192019 bp->line_speed = SPEED_2500;
20202020 break;
@@ -7856,7 +7856,7 @@ bnx2_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) · 5835 unmodified lines
78567856 case SIOCGMIIPHY:
78577857 data->phy_id = bp->phy_addr;
78587858
7859− /* fallthru */
7859+ fallthrough;
78607860 case SIOCGMIIREG: {
78617861 u32 mii_regval;
78627862
drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c+7−7
@@ -4712,14 +4712,14 @@ static void bnx2x_sync_link(struct link_params *params, · 4711 unmodified lines
47124712 LINK_STATUS_SPEED_AND_DUPLEX_MASK) {
47134713 case LINK_10THD:
47144714 vars->duplex = DUPLEX_HALF;
4715− /* Fall thru */
4715+ fallthrough;
47164716 case LINK_10TFD:
47174717 vars->line_speed = SPEED_10;
47184718 break;
47194719
47204720 case LINK_100TXHD:
47214721 vars->duplex = DUPLEX_HALF;
4722− /* Fall thru */
4722+ fallthrough;
47234723 case LINK_100T4:
47244724 case LINK_100TXFD:
47254725 vars->line_speed = SPEED_100;
@@ -4727,14 +4727,14 @@ static void bnx2x_sync_link(struct link_params *params, · 1 unmodified line
47274727
47284728 case LINK_1000THD:
47294729 vars->duplex = DUPLEX_HALF;
4730− /* Fall thru */
4730+ fallthrough;
47314731 case LINK_1000TFD:
47324732 vars->line_speed = SPEED_1000;
47334733 break;
47344734
47354735 case LINK_2500THD:
47364736 vars->duplex = DUPLEX_HALF;
4737− /* Fall thru */
4737+ fallthrough;
47384738 case LINK_2500TFD:
47394739 vars->line_speed = SPEED_2500;
47404740 break;
@@ -6339,7 +6339,7 @@ int bnx2x_set_led(struct link_params *params, · 1598 unmodified lines
63396339 */
63406340 if (!vars->link_up)
63416341 break;
6342− /* fall through */
6342+ fallthrough;
63436343 case LED_MODE_ON:
63446344 if (((params->phy[EXT_PHY1].type ==
63456345 PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8727) ||
@@ -12508,13 +12508,13 @@ static void bnx2x_phy_def_cfg(struct link_params *params, · 6162 unmodified lines
1250812508 switch (link_config & PORT_FEATURE_LINK_SPEED_MASK) {
1250912509 case PORT_FEATURE_LINK_SPEED_10M_HALF:
1251012510 phy->req_duplex = DUPLEX_HALF;
12511− /* fall through */
12511+ fallthrough;
1251212512 case PORT_FEATURE_LINK_SPEED_10M_FULL:
1251312513 phy->req_line_speed = SPEED_10;
1251412514 break;
1251512515 case PORT_FEATURE_LINK_SPEED_100M_HALF:
1251612516 phy->req_duplex = DUPLEX_HALF;
12517− /* fall through */
12517+ fallthrough;
1251812518 case PORT_FEATURE_LINK_SPEED_100M_FULL:
1251912519 phy->req_line_speed = SPEED_100;
1252012520 break;
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c+2−2
@@ -8600,11 +8600,11 @@ int bnx2x_set_int_mode(struct bnx2x *bp) · 8599 unmodified lines
86008600 bp->num_queues,
86018601 1 + bp->num_cnic_queues);
86028602
8603− /* fall through */
8603+ fallthrough;
86048604 case BNX2X_INT_MODE_MSI:
86058605 bnx2x_enable_msi(bp);
86068606
8607− /* fall through */
8607+ fallthrough;
86088608 case BNX2X_INT_MODE_INTX:
86098609 bp->num_ethernet_queues = 1;
86108610 bp->num_queues = bp->num_ethernet_queues + bp->num_cnic_queues;
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c+2−2
@@ -3258,7 +3258,7 @@ static int bnx2x_mcast_validate_e2(struct bnx2x *bp, · 3257 unmodified lines
32583258 /* DEL command deletes all currently configured MACs */
32593259 case BNX2X_MCAST_CMD_DEL:
32603260 o->set_registry_size(o, 0);
3261− /* fall through */
3261+ fallthrough;
32623262
32633263 /* RESTORE command will restore the entire multicast configuration */
32643264 case BNX2X_MCAST_CMD_RESTORE:
@@ -3592,7 +3592,7 @@ static int bnx2x_mcast_validate_e1(struct bnx2x *bp, · 327 unmodified lines
35923592 /* DEL command deletes all currently configured MACs */
35933593 case BNX2X_MCAST_CMD_DEL:
35943594 o->set_registry_size(o, 0);
3595− /* fall through */
3595+ fallthrough;
35963596
35973597 /* RESTORE command will restore the entire multicast configuration */
35983598 case BNX2X_MCAST_CMD_RESTORE:
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c+2−2
@@ -1809,7 +1809,7 @@ get_vf: · 1808 unmodified lines
18091809 DP(BNX2X_MSG_IOV, "got VF [%d:%d] RSS update ramrod\n",
18101810 vf->abs_vfid, qidx);
18111811 bnx2x_vf_handle_rss_update_eqe(bp, vf);
1812− /* fall through */
1812+ fallthrough;
18131813 case EVENT_RING_OPCODE_VF_FLR:
18141814 /* Do nothing for now */
18151815 return 0;
@@ -2207,7 +2207,7 @@ int bnx2x_vf_free(struct bnx2x *bp, struct bnx2x_virtf *vf) · 391 unmodified lines
22072207 rc = bnx2x_vf_close(bp, vf);
22082208 if (rc)
22092209 goto op_err;
2210− /* Fall through - to release resources */
2210+ fallthrough; /* to release resources */
22112211 case VF_ACQUIRED:
22122212 DP(BNX2X_MSG_IOV, "about to free resources\n");
22132213 bnx2x_vf_free_resc(bp, vf);
drivers/net/ethernet/broadcom/bnxt/bnxt.c+8−8
@@ -1923,7 +1923,7 @@ u32 bnxt_fw_health_readl(struct bnxt *bp, int reg_idx) · 1922 unmodified lines
19231923 break;
19241924 case BNXT_FW_HEALTH_REG_TYPE_GRC:
19251925 reg_off = fw_health->mapped_regs[reg_idx];
1926− /* fall through */
1926+ fallthrough;
19271927 case BNXT_FW_HEALTH_REG_TYPE_BAR0:
19281928 val = readl(bp->bar0 + reg_off);
19291929 break;
@@ -1966,11 +1966,11 @@ static int bnxt_async_event_process(struct bnxt *bp, · 36 unmodified lines
19661966 }
19671967 set_bit(BNXT_LINK_SPEED_CHNG_SP_EVENT, &bp->sp_event);
19681968 }
1969− /* fall through */
1969+ fallthrough;
19701970 case ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CHANGE:
19711971 case ASYNC_EVENT_CMPL_EVENT_ID_PORT_PHY_CFG_CHANGE:
19721972 set_bit(BNXT_LINK_CFG_CHANGE_SP_EVENT, &bp->sp_event);
1973− /* fall through */
1973+ fallthrough;
19741974 case ASYNC_EVENT_CMPL_EVENT_ID_LINK_STATUS_CHANGE:
19751975 set_bit(BNXT_LINK_CHNG_SP_EVENT, &bp->sp_event);
19761976 break;
@@ -9765,7 +9765,7 @@ static int bnxt_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) · 7788 unmodified lines
97659765 case SIOCGMIIPHY:
97669766 mdio->phy_id = bp->link_info.phy_addr;
97679767
9768− /* fallthru */
9768+ fallthrough;
97699769 case SIOCGMIIREG: {
97709770 u16 mii_regval = 0;
97719771
@@ -11022,7 +11022,7 @@ static void bnxt_fw_reset_writel(struct bnxt *bp, int reg_idx) · 1250 unmodified lines
1102211022 writel(reg_off & BNXT_GRC_BASE_MASK,
1102311023 bp->bar0 + BNXT_GRCPF_REG_WINDOW_BASE_OUT + 4);
1102411024 reg_off = (reg_off & BNXT_GRC_OFFSET_MASK) + 0x2000;
11025− /* fall through */
11025+ fallthrough;
1102611026 case BNXT_FW_HEALTH_REG_TYPE_BAR0:
1102711027 writel(val, bp->bar0 + reg_off);
1102811028 break;
@@ -11135,7 +11135,7 @@ static void bnxt_fw_reset_task(struct work_struct *work) · 106 unmodified lines
1113511135 }
1113611136 bp->fw_reset_state = BNXT_FW_RESET_STATE_RESET_FW;
1113711137 }
11138− /* fall through */
11138+ fallthrough;
1113911139 case BNXT_FW_RESET_STATE_RESET_FW:
1114011140 bnxt_reset_all(bp);
1114111141 bp->fw_reset_state = BNXT_FW_RESET_STATE_ENABLE_DEV;
@@ -11158,7 +11158,7 @@ static void bnxt_fw_reset_task(struct work_struct *work) · 16 unmodified lines
1115811158 }
1115911159 pci_set_master(bp->pdev);
1116011160 bp->fw_reset_state = BNXT_FW_RESET_STATE_POLL_FW;
11161− /* fall through */
11161+ fallthrough;
1116211162 case BNXT_FW_RESET_STATE_POLL_FW:
1116311163 bp->hwrm_cmd_timeout = SHORT_HWRM_CMD_TIMEOUT;
1116411164 rc = __bnxt_hwrm_ver_get(bp, true);
@@ -11173,7 +11173,7 @@ static void bnxt_fw_reset_task(struct work_struct *work) · 8 unmodified lines
1117311173 }
1117411174 bp->hwrm_cmd_timeout = DFLT_HWRM_CMD_TIMEOUT;
1117511175 bp->fw_reset_state = BNXT_FW_RESET_STATE_OPENING;
11176− /* fall through */
11176+ fallthrough;
1117711177 case BNXT_FW_RESET_STATE_OPENING:
1117811178 while (!rtnl_trylock()) {
1117911179 bnxt_queue_fw_reset_work(bp, HZ / 10);
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c+2−2
@@ -1073,7 +1073,7 @@ static int bnxt_grxfh(struct bnxt *bp, struct ethtool_rxnfc *cmd) · 1072 unmodified lines
10731073 if (bp->rss_hash_cfg & VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV4)
10741074 cmd->data |= RXH_IP_SRC | RXH_IP_DST |
10751075 RXH_L4_B_0_1 | RXH_L4_B_2_3;
1076− /* fall through */
1076+ fallthrough;
10771077 case SCTP_V4_FLOW:
10781078 case AH_ESP_V4_FLOW:
10791079 case AH_V4_FLOW:
@@ -1092,7 +1092,7 @@ static int bnxt_grxfh(struct bnxt *bp, struct ethtool_rxnfc *cmd) · 12 unmodified lines
10921092 if (bp->rss_hash_cfg & VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV6)
10931093 cmd->data |= RXH_IP_SRC | RXH_IP_DST |
10941094 RXH_L4_B_0_1 | RXH_L4_B_2_3;
1095− /* fall through */
1095+ fallthrough;
10961096 case SCTP_V6_FLOW:
10971097 case AH_ESP_V6_FLOW:
10981098 case AH_V6_FLOW:
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c+2−2
@@ -201,10 +201,10 @@ bool bnxt_rx_xdp(struct bnxt *bp, struct bnxt_rx_ring_info *rxr, u16 cons, · 200 unmodified lines
201201 break;
202202 default:
203203 bpf_warn_invalid_xdp_action(act);
204− /* Fall thru */
204+ fallthrough;
205205 case XDP_ABORTED:
206206 trace_xdp_exception(bp->dev, xdp_prog, act);
207− /* Fall thru */
207+ fallthrough;
208208 case XDP_DROP:
209209 bnxt_reuse_rx_data(rxr, cons, page);
210210 break;
drivers/net/ethernet/broadcom/cnic.c+2−2
@@ -3311,7 +3311,7 @@ static int cnic_ctl(void *data, struct cnic_ctl_info *info) · 3310 unmodified lines
33113311 }
33123312 case CNIC_CTL_FCOE_STATS_GET_CMD:
33133313 ulp_type = CNIC_ULP_FCOE;
3314− /* fall through */
3314+ fallthrough;
33153315 case CNIC_CTL_ISCSI_STATS_GET_CMD:
33163316 cnic_hold(dev);
33173317 cnic_copy_ulp_stats(dev, ulp_type);
@@ -4044,7 +4044,7 @@ static void cnic_cm_process_kcqe(struct cnic_dev *dev, struct kcqe *kcqe) · 726 unmodified lines
40444044 l4kcqe->status, l5kcqe->completion_status);
40454045 opcode = L4_KCQE_OPCODE_VALUE_CLOSE_COMP;
40464046 }
4047− /* Fall through */
4047+ fallthrough;
40484048 case L4_KCQE_OPCODE_VALUE_RESET_RECEIVED:
40494049 case L4_KCQE_OPCODE_VALUE_CLOSE_COMP:
40504050 case L4_KCQE_OPCODE_VALUE_RESET_COMP:
drivers/net/ethernet/broadcom/genet/bcmgenet.c+2−2
@@ -1185,10 +1185,10 @@ static void bcmgenet_update_mib_counters(struct bcmgenet_priv *priv) · 1184 unmodified lines
11851185 continue;
11861186 case BCMGENET_STAT_RUNT:
11871187 offset += BCMGENET_STAT_OFFSET;
1188− /* fall through */
1188+ fallthrough;
11891189 case BCMGENET_STAT_MIB_TX:
11901190 offset += BCMGENET_STAT_OFFSET;
1191− /* fall through */
1191+ fallthrough;
11921192 case BCMGENET_STAT_MIB_RX:
11931193 val = bcmgenet_umac_readl(priv,
11941194 UMAC_MIB_START + j + offset);
drivers/net/ethernet/broadcom/genet/bcmmii.c+1−1
@@ -192,7 +192,7 @@ int bcmgenet_mii_config(struct net_device *dev, bool init) · 191 unmodified lines
192192 switch (priv->phy_interface) {
193193 case PHY_INTERFACE_MODE_INTERNAL:
194194 phy_name = "internal PHY";
195− /* fall through */
195+ fallthrough;
196196 case PHY_INTERFACE_MODE_MOCA:
197197 /* Irrespective of the actually configured PHY speed (100 or
198198 * 1000) GENETv4 only has an internal GPHY so we will just end
drivers/net/ethernet/broadcom/tg3.c+27−27
@@ -715,7 +715,7 @@ static int tg3_ape_lock(struct tg3 *tp, int locknum) · 714 unmodified lines
715715 case TG3_APE_LOCK_GPIO:
716716 if (tg3_asic_rev(tp) == ASIC_REV_5761)
717717 return 0;
718− /* fall through */
718+ fallthrough;
719719 case TG3_APE_LOCK_GRC:
720720 case TG3_APE_LOCK_MEM:
721721 if (!tp->pci_fn)
@@ -776,7 +776,7 @@ static void tg3_ape_unlock(struct tg3 *tp, int locknum) · 54 unmodified lines
776776 case TG3_APE_LOCK_GPIO:
777777 if (tg3_asic_rev(tp) == ASIC_REV_5761)
778778 return;
779− /* fall through */
779+ fallthrough;
780780 case TG3_APE_LOCK_GRC:
781781 case TG3_APE_LOCK_MEM:
782782 if (!tp->pci_fn)
@@ -1586,7 +1586,7 @@ static int tg3_mdio_init(struct tg3 *tp) · 803 unmodified lines
15861586 phydev->dev_flags |= PHY_BRCM_EXT_IBND_RX_ENABLE;
15871587 if (tg3_flag(tp, RGMII_EXT_IBND_TX_EN))
15881588 phydev->dev_flags |= PHY_BRCM_EXT_IBND_TX_ENABLE;
1589− /* fall through */
1589+ fallthrough;
15901590 case PHY_ID_RTL8211C:
15911591 phydev->interface = PHY_INTERFACE_MODE_RGMII;
15921592 break;
@@ -2114,7 +2114,7 @@ static int tg3_phy_init(struct tg3 *tp) · 521 unmodified lines
21142114 phy_support_asym_pause(phydev);
21152115 break;
21162116 }
2117− /* fall through */
2117+ fallthrough;
21182118 case PHY_INTERFACE_MODE_MII:
21192119 phy_set_max_speed(phydev, SPEED_100);
21202120 phy_support_asym_pause(phydev);
@@ -4390,7 +4390,7 @@ static int tg3_phy_autoneg_cfg(struct tg3 *tp, u32 advertise, u32 flowctrl) · 2269 unmodified lines
43904390 MII_TG3_DSP_TAP26_RMRXSTO |
43914391 MII_TG3_DSP_TAP26_OPCSINPT;
43924392 tg3_phydsp_write(tp, MII_TG3_DSP_TAP26, val);
4393− /* Fall through */
4393+ fallthrough;
43944394 case ASIC_REV_5720:
43954395 case ASIC_REV_5762:
43964396 if (!tg3_phydsp_read(tp, MII_TG3_DSP_CH34TP2, &val))
@@ -4538,7 +4538,7 @@ static int tg3_phy_pull_config(struct tg3 *tp) · 141 unmodified lines
45384538 tp->link_config.speed = SPEED_1000;
45394539 break;
45404540 }
4541− /* Fall through */
4541+ fallthrough;
45424542 default:
45434543 goto done;
45444544 }
@@ -5209,7 +5209,7 @@ static int tg3_fiber_aneg_smachine(struct tg3 *tp, · 664 unmodified lines
52095209 if (ap->flags & (MR_AN_ENABLE | MR_RESTART_AN))
52105210 ap->state = ANEG_STATE_AN_ENABLE;
52115211
5212− /* fall through */
5212+ fallthrough;
52135213 case ANEG_STATE_AN_ENABLE:
52145214 ap->flags &= ~(MR_AN_COMPLETE | MR_PAGE_RX);
52155215 if (ap->flags & MR_AN_ENABLE) {
@@ -5239,7 +5239,7 @@ static int tg3_fiber_aneg_smachine(struct tg3 *tp, · 23 unmodified lines
52395239 ret = ANEG_TIMER_ENAB;
52405240 ap->state = ANEG_STATE_RESTART;
52415241
5242− /* fall through */
5242+ fallthrough;
52435243 case ANEG_STATE_RESTART:
52445244 delta = ap->cur_time - ap->link_time;
52455245 if (delta > ANEG_STATE_SETTLE_TIME)
@@ -5282,7 +5282,7 @@ static int tg3_fiber_aneg_smachine(struct tg3 *tp, · 36 unmodified lines
52825282
52835283 ap->state = ANEG_STATE_ACK_DETECT;
52845284
5285− /* fall through */
5285+ fallthrough;
52865286 case ANEG_STATE_ACK_DETECT:
52875287 if (ap->ack_match != 0) {
52885288 if ((ap->rxconfig & ~ANEG_CFG_ACK) ==
@@ -10720,40 +10720,40 @@ static int tg3_reset_hw(struct tg3 *tp, bool reset_phy) · 5431 unmodified lines
1072010720 switch (limit) {
1072110721 case 16:
1072210722 tw32(MAC_RCV_RULE_15, 0); tw32(MAC_RCV_VALUE_15, 0);
10723− /* fall through */
10723+ fallthrough;
1072410724 case 15:
1072510725 tw32(MAC_RCV_RULE_14, 0); tw32(MAC_RCV_VALUE_14, 0);
10726− /* fall through */
10726+ fallthrough;
1072710727 case 14:
1072810728 tw32(MAC_RCV_RULE_13, 0); tw32(MAC_RCV_VALUE_13, 0);
10729− /* fall through */
10729+ fallthrough;
1073010730 case 13:
1073110731 tw32(MAC_RCV_RULE_12, 0); tw32(MAC_RCV_VALUE_12, 0);
10732− /* fall through */
10732+ fallthrough;
1073310733 case 12:
1073410734 tw32(MAC_RCV_RULE_11, 0); tw32(MAC_RCV_VALUE_11, 0);
10735− /* fall through */
10735+ fallthrough;
1073610736 case 11:
1073710737 tw32(MAC_RCV_RULE_10, 0); tw32(MAC_RCV_VALUE_10, 0);
10738− /* fall through */
10738+ fallthrough;
1073910739 case 10:
1074010740 tw32(MAC_RCV_RULE_9, 0); tw32(MAC_RCV_VALUE_9, 0);
10741− /* fall through */
10741+ fallthrough;
1074210742 case 9:
1074310743 tw32(MAC_RCV_RULE_8, 0); tw32(MAC_RCV_VALUE_8, 0);
10744− /* fall through */
10744+ fallthrough;
1074510745 case 8:
1074610746 tw32(MAC_RCV_RULE_7, 0); tw32(MAC_RCV_VALUE_7, 0);
10747− /* fall through */
10747+ fallthrough;
1074810748 case 7:
1074910749 tw32(MAC_RCV_RULE_6, 0); tw32(MAC_RCV_VALUE_6, 0);
10750− /* fall through */
10750+ fallthrough;
1075110751 case 6:
1075210752 tw32(MAC_RCV_RULE_5, 0); tw32(MAC_RCV_VALUE_5, 0);
10753− /* fall through */
10753+ fallthrough;
1075410754 case 5:
1075510755 tw32(MAC_RCV_RULE_4, 0); tw32(MAC_RCV_VALUE_4, 0);
10756− /* fall through */
10756+ fallthrough;
1075710757 case 4:
1075810758 /* tw32(MAC_RCV_RULE_3, 0); tw32(MAC_RCV_VALUE_3, 0); */
1075910759 case 3:
@@ -13998,7 +13998,7 @@ static int tg3_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) · 3238 unmodified lines
1399813998 case SIOCGMIIPHY:
1399913999 data->phy_id = tp->phy_addr;
1400014000
14001− /* fall through */
14001+ fallthrough;
1400214002 case SIOCGMIIREG: {
1400314003 u32 mii_regval;
1400414004
@@ -17136,7 +17136,7 @@ static u32 tg3_calc_dma_bndry(struct tg3 *tp, u32 val) · 3131 unmodified lines
1713617136 val |= DMA_RWCTRL_WRITE_BNDRY_64_PCIE;
1713717137 break;
1713817138 }
17139− /* fallthrough */
17139+ fallthrough;
1714017140 case 128:
1714117141 default:
1714217142 val &= ~DMA_RWCTRL_WRITE_BNDRY_DISAB_PCIE;
@@ -17151,28 +17151,28 @@ static u32 tg3_calc_dma_bndry(struct tg3 *tp, u32 val) · 8 unmodified lines
1715117151 DMA_RWCTRL_WRITE_BNDRY_16);
1715217152 break;
1715317153 }
17154− /* fallthrough */
17154+ fallthrough;
1715517155 case 32:
1715617156 if (goal == BOUNDARY_SINGLE_CACHELINE) {
1715717157 val |= (DMA_RWCTRL_READ_BNDRY_32 |
1715817158 DMA_RWCTRL_WRITE_BNDRY_32);
1715917159 break;
1716017160 }
17161− /* fallthrough */
17161+ fallthrough;
1716217162 case 64:
1716317163 if (goal == BOUNDARY_SINGLE_CACHELINE) {
1716417164 val |= (DMA_RWCTRL_READ_BNDRY_64 |
1716517165 DMA_RWCTRL_WRITE_BNDRY_64);
1716617166 break;
1716717167 }
17168− /* fallthrough */
17168+ fallthrough;
1716917169 case 128:
1717017170 if (goal == BOUNDARY_SINGLE_CACHELINE) {
1717117171 val |= (DMA_RWCTRL_READ_BNDRY_128 |
1717217172 DMA_RWCTRL_WRITE_BNDRY_128);
1717317173 break;
1717417174 }
17175− /* fallthrough */
17175+ fallthrough;
1717617176 case 256:
1717717177 val |= (DMA_RWCTRL_READ_BNDRY_256 |
1717817178 DMA_RWCTRL_WRITE_BNDRY_256);
drivers/net/ethernet/brocade/bna/bfa_ioc.c+3−3
@@ -321,7 +321,7 @@ bfa_ioc_sm_getattr(struct bfa_ioc *ioc, enum ioc_event event) · 320 unmodified lines
321321 case IOC_E_PFFAILED:
322322 case IOC_E_HWERROR:
323323 del_timer(&ioc->ioc_timer);
324− /* fall through */
324+ fallthrough;
325325 case IOC_E_TIMEOUT:
326326 ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE);
327327 bfa_fsm_set_state(ioc, bfa_ioc_sm_fail);
@@ -780,7 +780,7 @@ bfa_iocpf_sm_enabling(struct bfa_iocpf *iocpf, enum iocpf_event event) · 452 unmodified lines
780780
781781 case IOCPF_E_INITFAIL:
782782 del_timer(&ioc->iocpf_timer);
783− /* fall through */
783+ fallthrough;
784784
785785 case IOCPF_E_TIMEOUT:
786786 bfa_nw_ioc_hw_sem_release(ioc);
@@ -849,7 +849,7 @@ bfa_iocpf_sm_disabling(struct bfa_iocpf *iocpf, enum iocpf_event event) · 62 unmodified lines
849849
850850 case IOCPF_E_FAIL:
851851 del_timer(&ioc->iocpf_timer);
852− /* fall through*/
852+ fallthrough;
853853
854854 case IOCPF_E_TIMEOUT:
855855 bfa_ioc_set_cur_ioc_fwstate(ioc, BFI_IOC_FAIL);
drivers/net/ethernet/brocade/bna/bna_enet.c+1−1
@@ -1084,7 +1084,7 @@ bna_enet_sm_cfg_wait(struct bna_enet *enet, · 1083 unmodified lines
10841084
10851085 case ENET_E_CHLD_STOPPED:
10861086 bna_enet_rx_start(enet);
1087− /* Fall through */
1087+ fallthrough;
10881088 case ENET_E_FWRESP_PAUSE:
10891089 if (enet->flags & BNA_ENET_F_PAUSE_CHANGED) {
10901090 enet->flags &= ~BNA_ENET_F_PAUSE_CHANGED;
drivers/net/ethernet/brocade/bna/bna_tx_rx.c+1−1
@@ -1636,7 +1636,7 @@ bna_bfi_rx_enet_start(struct bna_rx *rx) · 1635 unmodified lines
16361636 &q1->qpt);
16371637 cfg_req->q_cfg[i].qs.rx_buffer_size =
16381638 htons((u16)q1->buffer_size);
1639− /* Fall through */
1639+ fallthrough;
16401640
16411641 case BNA_RXP_SINGLE:
16421642 /* Large/Single RxQ */
drivers/net/ethernet/cadence/macb_ptp.c+1−1
@@ -460,7 +460,7 @@ int gem_set_hwtst(struct net_device *dev, struct ifreq *ifr, int cmd) · 459 unmodified lines
460460 case HWTSTAMP_TX_ONESTEP_SYNC:
461461 if (gem_ptp_set_one_step_sync(bp, 1) != 0)
462462 return -ERANGE;
463− /* fall through */
463+ fallthrough;
464464 case HWTSTAMP_TX_ON:
465465 tx_bd_control = TSTAMP_ALL_FRAMES;
466466 break;
drivers/net/ethernet/cavium/liquidio/lio_main.c+14−15
@@ -977,15 +977,14 @@ static void octeon_destroy_resources(struct octeon_device *oct) · 976 unmodified lines
977977
978978 schedule_timeout_uninterruptible(HZ / 10);
979979
980− /* fallthrough */
980+ fallthrough;
981981 case OCT_DEV_HOST_OK:
982982
983− /* fallthrough */
984983 case OCT_DEV_CONSOLE_INIT_DONE:
985984 /* Remove any consoles */
986985 octeon_remove_consoles(oct);
987986
988− /* fallthrough */
987+ fallthrough;
989988 case OCT_DEV_IO_QUEUES_DONE:
990989 if (lio_wait_for_instr_fetch(oct))
991990 dev_err(&oct->pci_dev->dev, "IQ had pending instructions\n");
@@ -1027,7 +1026,7 @@ static void octeon_destroy_resources(struct octeon_device *oct) · 35 unmodified lines
10271026 octeon_free_sc_done_list(oct);
10281027 octeon_free_sc_zombie_list(oct);
10291028
1030− /* fallthrough */
1029+ fallthrough;
10311030 case OCT_DEV_INTR_SET_DONE:
10321031 /* Disable interrupts */
10331032 oct->fn_list.disable_interrupt(oct, OCTEON_ALL_INTR);
@@ -1062,17 +1061,17 @@ static void octeon_destroy_resources(struct octeon_device *oct) · 28 unmodified lines
10621061 kfree(oct->irq_name_storage);
10631062 oct->irq_name_storage = NULL;
10641063
1065− /* fallthrough */
1064+ fallthrough;
10661065 case OCT_DEV_MSIX_ALLOC_VECTOR_DONE:
10671066 if (OCTEON_CN23XX_PF(oct))
10681067 octeon_free_ioq_vector(oct);
10691068
1070− /* fallthrough */
1069+ fallthrough;
10711070 case OCT_DEV_MBOX_SETUP_DONE:
10721071 if (OCTEON_CN23XX_PF(oct))
10731072 oct->fn_list.free_mbox(oct);
10741073
1075− /* fallthrough */
1074+ fallthrough;
10761075 case OCT_DEV_IN_RESET:
10771076 case OCT_DEV_DROQ_INIT_DONE:
10781077 /* Wait for any pending operations */
@@ -1095,11 +1094,11 @@ static void octeon_destroy_resources(struct octeon_device *oct) · 16 unmodified lines
10951094 }
10961095 }
10971096
1098− /* fallthrough */
1097+ fallthrough;
10991098 case OCT_DEV_RESP_LIST_INIT_DONE:
11001099 octeon_delete_response_list(oct);
11011100
1102− /* fallthrough */
1101+ fallthrough;
11031102 case OCT_DEV_INSTR_QUEUE_INIT_DONE:
11041103 for (i = 0; i < MAX_OCTEON_INSTR_QUEUES(oct); i++) {
11051104 if (!(oct->io_qmask.iq & BIT_ULL(i)))
@@ -1110,16 +1109,16 @@ static void octeon_destroy_resources(struct octeon_device *oct) · 4 unmodified lines
11101109 if (oct->sriov_info.sriov_enabled)
11111110 pci_disable_sriov(oct->pci_dev);
11121111 #endif
1113− /* fallthrough */
1112+ fallthrough;
11141113 case OCT_DEV_SC_BUFF_POOL_INIT_DONE:
11151114 octeon_free_sc_buffer_pool(oct);
11161115
1117− /* fallthrough */
1116+ fallthrough;
11181117 case OCT_DEV_DISPATCH_INIT_DONE:
11191118 octeon_delete_dispatch_list(oct);
11201119 cancel_delayed_work_sync(&oct->nic_poll_work.work);
11211120
1122− /* fallthrough */
1121+ fallthrough;
11231122 case OCT_DEV_PCI_MAP_DONE:
11241123 refcount = octeon_deregister_device(oct);
11251124
@@ -1137,13 +1136,13 @@ static void octeon_destroy_resources(struct octeon_device *oct) · 11 unmodified lines
11371136 octeon_unmap_pci_barx(oct, 0);
11381137 octeon_unmap_pci_barx(oct, 1);
11391138
1140− /* fallthrough */
1139+ fallthrough;
11411140 case OCT_DEV_PCI_ENABLE_DONE:
11421141 pci_clear_master(oct->pci_dev);
11431142 /* Disable the device, releasing the PCI INT */
11441143 pci_disable_device(oct->pci_dev);
11451144
1146− /* fallthrough */
1145+ fallthrough;
11471146 case OCT_DEV_BEGIN_STATE:
11481147 /* Nothing to be done here either */
11491148 break;
@@ -2168,7 +2167,7 @@ static int liquidio_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) · 1018 unmodified lines
21682167 case SIOCSHWTSTAMP:
21692168 if (lio->oct_dev->ptp_enable)
21702169 return hwtstamp_ioctl(netdev, ifr);
2171− /* fall through */
2170+ fallthrough;
21722171 default:
21732172 return -EOPNOTSUPP;
21742173 }
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c+12−13
@@ -460,9 +460,8 @@ static void octeon_destroy_resources(struct octeon_device *oct) · 459 unmodified lines
460460
461461 schedule_timeout_uninterruptible(HZ / 10);
462462
463− /* fallthrough */
463+ fallthrough;
464464 case OCT_DEV_HOST_OK:
465− /* fallthrough */
466465 case OCT_DEV_IO_QUEUES_DONE:
467466 if (lio_wait_for_instr_fetch(oct))
468467 dev_err(&oct->pci_dev->dev, "IQ had pending instructions\n");
@@ -504,7 +503,7 @@ static void octeon_destroy_resources(struct octeon_device *oct) · 35 unmodified lines
504503 octeon_free_sc_done_list(oct);
505504 octeon_free_sc_zombie_list(oct);
506505
507− /* fall through */
506+ fallthrough;
508507 case OCT_DEV_INTR_SET_DONE:
509508 /* Disable interrupts */
510509 oct->fn_list.disable_interrupt(oct, OCTEON_ALL_INTR);
@@ -533,15 +532,15 @@ static void octeon_destroy_resources(struct octeon_device *oct) · 22 unmodified lines
533532 else
534533 cn23xx_vf_ask_pf_to_do_flr(oct);
535534
536− /* fallthrough */
535+ fallthrough;
537536 case OCT_DEV_MSIX_ALLOC_VECTOR_DONE:
538537 octeon_free_ioq_vector(oct);
539538
540− /* fallthrough */
539+ fallthrough;
541540 case OCT_DEV_MBOX_SETUP_DONE:
542541 oct->fn_list.free_mbox(oct);
543542
544− /* fallthrough */
543+ fallthrough;
545544 case OCT_DEV_IN_RESET:
546545 case OCT_DEV_DROQ_INIT_DONE:
547546 mdelay(100);
@@ -551,11 +550,11 @@ static void octeon_destroy_resources(struct octeon_device *oct) · 3 unmodified lines
551550 octeon_delete_droq(oct, i);
552551 }
553552
554− /* fallthrough */
553+ fallthrough;
555554 case OCT_DEV_RESP_LIST_INIT_DONE:
556555 octeon_delete_response_list(oct);
557556
558− /* fallthrough */
557+ fallthrough;
559558 case OCT_DEV_INSTR_QUEUE_INIT_DONE:
560559 for (i = 0; i < MAX_OCTEON_INSTR_QUEUES(oct); i++) {
561560 if (!(oct->io_qmask.iq & BIT_ULL(i)))
@@ -563,27 +562,27 @@ static void octeon_destroy_resources(struct octeon_device *oct) · 1 unmodified line
563562 octeon_delete_instr_queue(oct, i);
564563 }
565564
566− /* fallthrough */
565+ fallthrough;
567566 case OCT_DEV_SC_BUFF_POOL_INIT_DONE:
568567 octeon_free_sc_buffer_pool(oct);
569568
570− /* fallthrough */
569+ fallthrough;
571570 case OCT_DEV_DISPATCH_INIT_DONE:
572571 octeon_delete_dispatch_list(oct);
573572 cancel_delayed_work_sync(&oct->nic_poll_work.work);
574573
575− /* fallthrough */
574+ fallthrough;
576575 case OCT_DEV_PCI_MAP_DONE:
577576 octeon_unmap_pci_barx(oct, 0);
578577 octeon_unmap_pci_barx(oct, 1);
579578
580− /* fallthrough */
579+ fallthrough;
581580 case OCT_DEV_PCI_ENABLE_DONE:
582581 pci_clear_master(oct->pci_dev);
583582 /* Disable the device, releasing the PCI INT */
584583 pci_disable_device(oct->pci_dev);
585584
586− /* fallthrough */
585+ fallthrough;
587586 case OCT_DEV_BEGIN_STATE:
588587 /* Nothing to be done here either */
589588 break;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c+1−1
@@ -522,7 +522,7 @@ static int nicvf_get_rss_hash_opts(struct nicvf *nic, · 521 unmodified lines
522522 case SCTP_V4_FLOW:
523523 case SCTP_V6_FLOW:
524524 info->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3;
525− /* Fall through */
525+ fallthrough;
526526 case IPV4_FLOW:
527527 case IPV6_FLOW:
528528 info->data |= RXH_IP_SRC | RXH_IP_DST;
drivers/net/ethernet/cavium/thunder/nicvf_main.c+2−2
@@ -594,10 +594,10 @@ static inline bool nicvf_xdp_rx(struct nicvf *nic, struct bpf_prog *prog, · 593 unmodified lines
594594 return true;
595595 default:
596596 bpf_warn_invalid_xdp_action(action);
597− /* fall through */
597+ fallthrough;
598598 case XDP_ABORTED:
599599 trace_xdp_exception(nic->netdev, prog, action);
600− /* fall through */
600+ fallthrough;
601601 case XDP_DROP:
602602 /* Check if it's a recycled page, if not
603603 * unmap the DMA mapping.
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c+1−1
@@ -2543,7 +2543,7 @@ static int cxgb_ioctl(struct net_device *dev, struct ifreq *req, int cmd) · 2542 unmodified lines
25432543 !(data->phy_id & 0xe0e0))
25442544 data->phy_id = mdio_phy_id_c45(data->phy_id >> 8,
25452545 data->phy_id & 0x1f);
2546− /* FALLTHRU */
2546+ fallthrough;
25472547 case SIOCGMIIPHY:
25482548 return mdio_mii_ioctl(&pi->phy.mdio, data, cmd);
25492549 case SIOCCHIOCTL:
drivers/net/ethernet/chelsio/cxgb3/l2t.c+1−1
@@ -136,7 +136,7 @@ again: · 135 unmodified lines
136136 if (e->state == L2T_STATE_STALE)
137137 e->state = L2T_STATE_VALID;
138138 spin_unlock_bh(&e->lock);
139− /* fall through */
139+ fallthrough;
140140 case L2T_STATE_VALID: /* fast-path, send the packet on */
141141 return cxgb3_ofld_send(dev, skb);
142142 case L2T_STATE_RESOLVING:
drivers/net/ethernet/chelsio/cxgb4/l2t.c+1−1
@@ -231,7 +231,7 @@ again: · 230 unmodified lines
231231 if (e->state == L2T_STATE_STALE)
232232 e->state = L2T_STATE_VALID;
233233 spin_unlock_bh(&e->lock);
234− /* fall through */
234+ fallthrough;
235235 case L2T_STATE_VALID: /* fast-path, send the packet on */
236236 return t4_ofld_send(adap, skb);
237237 case L2T_STATE_RESOLVING:
drivers/net/ethernet/chelsio/cxgb4/sge.c+7−3
@@ -2553,19 +2553,22 @@ int cxgb4_selftest_lb_pkt(struct net_device *netdev) · 2552 unmodified lines
25532553
25542554 pkt_len = ETH_HLEN + sizeof(CXGB4_SELFTEST_LB_STR);
25552555
2556− flits = DIV_ROUND_UP(pkt_len + sizeof(struct cpl_tx_pkt) +
2557− sizeof(*wr), sizeof(__be64));
2556+ flits = DIV_ROUND_UP(pkt_len + sizeof(*cpl) + sizeof(*wr),
2557+ sizeof(__be64));
25582558 ndesc = flits_to_desc(flits);
25592559
25602560 lb = &pi->ethtool_lb;
25612561 lb->loopback = 1;
25622562
25632563 q = &adap->sge.ethtxq[pi->first_qset];
2564+ __netif_tx_lock(q->txq, smp_processor_id());
25642565
25652566 reclaim_completed_tx(adap, &q->q, -1, true);
25662567 credits = txq_avail(&q->q) - ndesc;
2567− if (unlikely(credits < 0))
2568+ if (unlikely(credits < 0)) {
2569+ __netif_tx_unlock(q->txq);
25682570 return -ENOMEM;
2571+ }
25692572
25702573 wr = (void *)&q->q.desc[q->q.pidx];
25712574 memset(wr, 0, sizeof(struct tx_desc));
@@ -2598,6 +2601,7 @@ int cxgb4_selftest_lb_pkt(struct net_device *netdev) · 26 unmodified lines
25982601 init_completion(&lb->completion);
25992602 txq_advance(&q->q, ndesc);
26002603 cxgb4_ring_tx_db(adap, &q->q, ndesc);
2604+ __netif_tx_unlock(q->txq);
26012605
26022606 /* wait for the pkt to return */
26032607 ret = wait_for_completion_timeout(&lb->completion, 10 * HZ);
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c+3−3
@@ -7656,13 +7656,13 @@ int t4_alloc_vi(struct adapter *adap, unsigned int mbox, unsigned int port, · 7655 unmodified lines
76567656 switch (nmac) {
76577657 case 5:
76587658 memcpy(mac + 24, c.nmac3, sizeof(c.nmac3));
7659− /* Fall through */
7659+ fallthrough;
76607660 case 4:
76617661 memcpy(mac + 18, c.nmac2, sizeof(c.nmac2));
7662− /* Fall through */
7662+ fallthrough;
76637663 case 3:
76647664 memcpy(mac + 12, c.nmac1, sizeof(c.nmac1));
7665− /* Fall through */
7665+ fallthrough;
76667666 case 2:
76677667 memcpy(mac + 6, c.nmac0, sizeof(c.nmac0));
76687668 }
drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c+1−1
@@ -517,7 +517,7 @@ static int fwevtq_handler(struct sge_rspq *rspq, const __be64 *rsp, · 516 unmodified lines
517517 }
518518 cpl = (void *)p;
519519 }
520− /* Fall through */
520+ fallthrough;
521521
522522 case CPL_SGE_EGR_UPDATE: {
523523 /*
drivers/net/ethernet/cisco/enic/enic_main.c+1−1
@@ -272,7 +272,7 @@ static netdev_features_t enic_features_check(struct sk_buff *skb, · 271 unmodified lines
272272 case ntohs(ETH_P_IPV6):
273273 if (!(enic->vxlan.flags & ENIC_VXLAN_INNER_IPV6))
274274 goto out;
275− /* Fall through */
275+ fallthrough;
276276 case ntohs(ETH_P_IP):
277277 break;
278278 default:
drivers/net/ethernet/cortina/gemini.c+1−3
@@ -2389,7 +2389,7 @@ static int gemini_ethernet_port_probe(struct platform_device *pdev) · 2388 unmodified lines
23892389
23902390 dev_info(dev, "probe %s ID %d\n", dev_name(dev), id);
23912391
2392− netdev = alloc_etherdev_mq(sizeof(*port), TX_QUEUE_NUM);
2392+ netdev = devm_alloc_etherdev_mqs(dev, sizeof(*port), TX_QUEUE_NUM, TX_QUEUE_NUM);
23932393 if (!netdev) {
23942394 dev_err(dev, "Can't allocate ethernet device #%d\n", id);
23952395 return -ENOMEM;
@@ -2521,7 +2521,6 @@ static int gemini_ethernet_port_probe(struct platform_device *pdev) · 125 unmodified lines
25212521 }
25222522
25232523 port->netdev = NULL;
2524− free_netdev(netdev);
25252524 return ret;
25262525 }
25272526
@@ -2530,7 +2529,6 @@ static int gemini_ethernet_port_remove(struct platform_device *pdev) · 2 unmodified lines
25302529 struct gemini_ethernet_port *port = platform_get_drvdata(pdev);
25312530
25322531 gemini_port_remove(port);
2533− free_netdev(port->netdev);
25342532 return 0;
25352533 }
25362534
drivers/net/ethernet/davicom/dm9000.c+1−1
@@ -385,7 +385,7 @@ static void dm9000_set_io(struct board_info *db, int byte_width) · 384 unmodified lines
385385
386386 case 3:
387387 dev_dbg(db->dev, ": 3 byte IO, falling back to 16bit\n");
388− /* fall through */
388+ fallthrough;
389389 case 2:
390390 db->dumpblk = dm9000_dumpblk_16bit;
391391 db->outblk = dm9000_outblk_16bit;
drivers/net/ethernet/dec/tulip/de4x5.c+3−3
@@ -3203,7 +3203,7 @@ srom_map_media(struct net_device *dev) · 3202 unmodified lines
32033203 case SROM_10BASETF:
32043204 if (!lp->params.fdx) return -1;
32053205 lp->fdx = true;
3206− /* fall through */
3206+ fallthrough;
32073207
32083208 case SROM_10BASET:
32093209 if (lp->params.fdx && !lp->fdx) return -1;
@@ -3225,7 +3225,7 @@ srom_map_media(struct net_device *dev) · 15 unmodified lines
32253225 case SROM_100BASETF:
32263226 if (!lp->params.fdx) return -1;
32273227 lp->fdx = true;
3228− /* fall through */
3228+ fallthrough;
32293229
32303230 case SROM_100BASET:
32313231 if (lp->params.fdx && !lp->fdx) return -1;
@@ -3239,7 +3239,7 @@ srom_map_media(struct net_device *dev) · 7 unmodified lines
32393239 case SROM_100BASEFF:
32403240 if (!lp->params.fdx) return -1;
32413241 lp->fdx = true;
3242− /* fall through */
3242+ fallthrough;
32433243
32443244 case SROM_100BASEF:
32453245 if (lp->params.fdx && !lp->fdx) return -1;
drivers/net/ethernet/dec/tulip/tulip_core.c+1−1
@@ -911,7 +911,7 @@ static int private_ioctl (struct net_device *dev, struct ifreq *rq, int cmd) · 910 unmodified lines
911911 data->phy_id = 1;
912912 else
913913 return -ENODEV;
914− /* Fall through */
914+ fallthrough;
915915
916916 case SIOCGMIIREG: /* Read MII PHY register. */
917917 if (data->phy_id == 32 && (tp->flags & HAS_NWAY)) {
drivers/net/ethernet/dec/tulip/winbond-840.c+1−1
@@ -1443,7 +1443,7 @@ static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) · 1442 unmodified lines
14431443 switch(cmd) {
14441444 case SIOCGMIIPHY: /* Get address of MII PHY in use. */
14451445 data->phy_id = ((struct netdev_private *)netdev_priv(dev))->phys[0] & 0x1f;
1446− /* Fall Through */
1446+ fallthrough;
14471447
14481448 case SIOCGMIIREG: /* Read MII PHY register. */
14491449 spin_lock_irq(&np->lock);
drivers/net/ethernet/emulex/benet/be_ethtool.c+1−1
@@ -571,7 +571,7 @@ static u32 convert_to_et_setting(struct be_adapter *adapter, u32 if_speeds) · 570 unmodified lines
571571 break;
572572 }
573573 }
574− /* fall through */
574+ fallthrough;
575575 case PHY_TYPE_SFP_PLUS_10GB:
576576 case PHY_TYPE_XFP_10GB:
577577 case PHY_TYPE_SFP_1GB:
drivers/net/ethernet/freescale/dpaa/dpaa_eth.c+1−1
@@ -945,7 +945,7 @@ static void dpaa_fq_setup(struct dpaa_priv *priv, · 944 unmodified lines
945945 break;
946946 case FQ_TYPE_TX_CONF_MQ:
947947 priv->conf_fqs[conf_cnt++] = &fq->fq_base;
948− /* fall through */
948+ fallthrough;
949949 case FQ_TYPE_TX_CONFIRM:
950950 dpaa_setup_ingress(priv, fq, &fq_cbs->tx_defq);
951951 break;
drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c+1−1
@@ -375,7 +375,7 @@ static int dpaa_get_hash_opts(struct net_device *dev, · 374 unmodified lines
375375 case UDP_V6_FLOW:
376376 if (priv->keygen_in_use)
377377 cmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3;
378− /* Fall through */
378+ fallthrough;
379379 case IPV4_FLOW:
380380 case IPV6_FLOW:
381381 case SCTP_V4_FLOW:
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c+2−2
@@ -376,10 +376,10 @@ static u32 run_xdp(struct dpaa2_eth_priv *priv, · 375 unmodified lines
376376 break;
377377 default:
378378 bpf_warn_invalid_xdp_action(xdp_act);
379− /* fall through */
379+ fallthrough;
380380 case XDP_ABORTED:
381381 trace_xdp_exception(priv->net_dev, xdp_prog, xdp_act);
382− /* fall through */
382+ fallthrough;
383383 case XDP_DROP:
384384 xdp_release_buf(priv, ch, addr);
385385 ch->stats.xdp_drop++;
drivers/net/ethernet/freescale/fec_main.c+2−2
@@ -3715,11 +3715,11 @@ failed_mii_init: · 3714 unmodified lines
37153715 failed_irq:
37163716 failed_init:
37173717 fec_ptp_stop(pdev);
3718− if (fep->reg_phy)
3719− regulator_disable(fep->reg_phy);
37203718 failed_reset:
37213719 pm_runtime_put_noidle(&pdev->dev);
37223720 pm_runtime_disable(&pdev->dev);
3721+ if (fep->reg_phy)
3722+ regulator_disable(fep->reg_phy);
37233723 failed_regulator:
37243724 clk_disable_unprepare(fep->clk_ahb);
37253725 failed_clk_ahb:
drivers/net/ethernet/freescale/fman/fman_memac.c+1−1
@@ -528,7 +528,7 @@ static void setup_sgmii_internal_phy(struct fman_mac *memac, · 527 unmodified lines
528528 case 100:
529529 tmp_reg16 |= IF_MODE_SGMII_SPEED_100M;
530530 break;
531− case 1000: /* fallthrough */
531+ case 1000:
532532 default:
533533 tmp_reg16 |= IF_MODE_SGMII_SPEED_1G;
534534 break;
drivers/net/ethernet/freescale/fman/fman_port.c+2−2
@@ -1344,10 +1344,10 @@ int fman_port_config(struct fman_port *port, struct fman_port_params *params) · 1343 unmodified lines
13441344 switch (port->port_type) {
13451345 case FMAN_PORT_TYPE_RX:
13461346 set_rx_dflt_cfg(port, params);
1347− /* fall through */
1347+ fallthrough;
13481348 case FMAN_PORT_TYPE_TX:
13491349 set_tx_dflt_cfg(port, params, &port->dts_params);
1350− /* fall through */
1350+ fallthrough;
13511351 default:
13521352 set_dflt_cfg(port, params);
13531353 }
drivers/net/ethernet/freescale/gianfar.c+3−1
@@ -750,8 +750,10 @@ static int gfar_of_init(struct platform_device *ofdev, struct net_device **pdev) · 749 unmodified lines
750750 continue;
751751
752752 err = gfar_parse_group(child, priv, model);
753− if (err)
753+ if (err) {
754+ of_node_put(child);
754755 goto err_grp_init;
756+ }
755757 }
756758 } else { /* SQ_SG_MODE */
757759 err = gfar_parse_group(np, priv, model);
drivers/net/ethernet/freescale/ucc_geth.c+1−1
@@ -1348,7 +1348,7 @@ static int adjust_enet_interface(struct ucc_geth_private *ugeth) · 1347 unmodified lines
13481348 switch (ugeth->max_speed) {
13491349 case SPEED_10:
13501350 upsmr |= UCC_GETH_UPSMR_R10M;
1351− /* FALLTHROUGH */
1351+ fallthrough;
13521352 case SPEED_100:
13531353 if (ugeth->phy_interface != PHY_INTERFACE_MODE_RTBI)
13541354 upsmr |= UCC_GETH_UPSMR_RMM;
drivers/net/ethernet/hisilicon/hns/hns_ethtool.c+1−1
@@ -305,7 +305,7 @@ static int __lb_setup(struct net_device *ndev, · 304 unmodified lines
305305 break;
306306 case MAC_LOOP_PHY_NONE:
307307 ret = hns_nic_config_phy_loopback(phy_dev, 0x0);
308− /* fall through */
308+ fallthrough;
309309 case MAC_LOOP_NONE:
310310 if (!ret && h->dev->ops->set_loopback) {
311311 if (priv->ae_handle->phy_if != PHY_INTERFACE_MODE_XGMII)
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c+1−1
@@ -2746,7 +2746,7 @@ static void hns3_rx_checksum(struct hns3_enet_ring *ring, struct sk_buff *skb, · 2745 unmodified lines
27462746 case HNS3_OL4_TYPE_MAC_IN_UDP:
27472747 case HNS3_OL4_TYPE_NVGRE:
27482748 skb->csum_level = 1;
2749− /* fall through */
2749+ fallthrough;
27502750 case HNS3_OL4_TYPE_NO_TUN:
27512751 l3_type = hnae3_get_field(l234info, HNS3_RXD_L3ID_M,
27522752 HNS3_RXD_L3ID_S);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c+1−3
@@ -3061,7 +3061,7 @@ static irqreturn_t hclge_misc_irq_handle(int irq, void *data) · 3060 unmodified lines
30613061 * by first decoding the types of errors.
30623062 */
30633063 set_bit(HNAE3_UNKNOWN_RESET, &hdev->reset_request);
3064− /* fall through */
3064+ fallthrough;
30653065 case HCLGE_VECTOR0_EVENT_RST:
30663066 hclge_reset_task_schedule(hdev);
30673067 break;
@@ -3686,12 +3686,10 @@ static int hclge_reset_prepare_up(struct hclge_dev *hdev) · 618 unmodified lines

12 more 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/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/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/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/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/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+5−0

This diff is large: its 12 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/cpsw-phy-sel.c+2−2

This diff is large: its 18 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/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/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/aqc111.c+3−3

This diff is large: its 17 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/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+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+1−1

This diff is large: its 9 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/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+60−38

This diff is large: its 194 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+27−4

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

drivers/nvme/host/pci.c+10−9

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

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

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

drivers/nvme/host/tcp.c+2−3

This diff is large: its 26 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/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/of/address.c+20−1

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

drivers/opp/core.c+12−7

This diff is large: its 40 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/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/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−0

This diff is large: its 12 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/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/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/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/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/events/events_base.c+8−8

This diff is large: its 71 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/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+8−2

This diff is large: its 17 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.

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/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/fsclient.c+21−21

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

fs/afs/misc.c+9−9

This diff is large: its 52 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/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/ctree.c+1−1

This diff is large: its 9 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+11−6

This diff is large: its 45 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/inode.c+14−15

This diff is large: its 93 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-log.c+6−4

This diff is large: its 18 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+13−13

This diff is large: its 74 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+137−137

This diff is large: its 600 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_trans_inode.c+2−2

This diff is large: its 12 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/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/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/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/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/lockdep.h+13−5

This diff is large: its 49 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_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+6−6

This diff is large: its 26 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/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/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/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/xen/arm/page.h+5−1

This diff is large: its 13 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+1−1

This diff is large: its 9 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+2−1

This diff is large: its 10 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/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/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/hugetlb_cgroup.c+2−2

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

mm/khugepaged.c+1−1

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

mm/ksm.c+4−0

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

mm/memory.c+3−0

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

mm/page_alloc.c+6−1

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

mm/rodata_test.c+1−0

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

mm/vmalloc.c+2−0

This diff is large: its 9 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/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/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+14−12

This diff is large: its 89 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/pktgen.c+1−1

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

net/core/skbuff.c+9−5

This diff is large: its 28 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+1−1

This diff is large: its 9 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/nexthop.c+4−1

This diff is large: its 19 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/iucv/af_iucv.c+5−5

This diff is large: its 40 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+11−6

This diff is large: its 61 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_tables_api.c+4−2

This diff is large: its 13 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/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+1−1

This diff is large: its 9 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/call_accept.c+1−1

This diff is large: its 9 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+3−3

This diff is large: its 24 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/peer_event.c+1−1

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

net/rxrpc/recvmsg.c+1−1

This diff is large: its 9 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/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/stream.c+4−2

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

net/smc/smc_close.c+1−1

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

net/smc/smc_diag.c+9−7

This diff is large: its 23 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+2−0

This diff is large: its 13 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+2−2

This diff is large: its 18 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+2−2

This diff is large: its 18 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+10−10

This diff is large: its 90 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+2−2

This diff is large: its 18 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/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/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.

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/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/isa/sscape.c+3−3

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

sound/pci/hda/patch_realtek.c+3−0

This diff is large: its 17 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_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/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/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/mixer.c+7−1

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

sound/usb/quirks-table.h+32−2

This diff is large: its 55 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/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/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_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+43−30

This diff is large: its 116 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/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.